三菱通信协议完整版及程序

上传人:豆浆 文档编号:10761333 上传时间:2017-09-02 格式:PDF 页数:17 大小:329.61KB
返回 下载 相关 举报
三菱通信协议完整版及程序_第1页
第1页 / 共17页
三菱通信协议完整版及程序_第2页
第2页 / 共17页
三菱通信协议完整版及程序_第3页
第3页 / 共17页
三菱通信协议完整版及程序_第4页
第4页 / 共17页
三菱通信协议完整版及程序_第5页
第5页 / 共17页
点击查看更多>>
资源描述

《三菱通信协议完整版及程序》由会员分享,可在线阅读,更多相关《三菱通信协议完整版及程序(17页珍藏版)》请在金锄头文库上搜索。

1、 http:/ 三菱工控网 文章:三菱 PLC 通讯协议参考 ,总 17 页之第 1 页 三菱 FX 系列 PLC 编程口通信协议总览 三菱 FX 系列 PLC 编程口通信协议总览 该协议实际上适用于 PLC 编程端口以及 FX-232AW 模块的通信。感谢网友 visualboy 提供。 通讯格式: 命令 命令码 目标设备 DEVICE READ CMD 0 X,Y,M,S,T,C,D DEVICE WRITE CMD 1 X,Y,M,S,T,C,D FORCE ON CMD 7 X,Y,M,S,T,C FORCE OFF CMD 8 X,Y,M,S,T,C 传输格式 : RS232C 波特

2、率 : 9600bps 奇偶 : even 校验 : 累加方式(和校验) 字符 : ASCII 16 进制代码: ENQ 05H 请求 ACK 06H PLC 正确响应 NAK 15H PLC 错误响应 STX 02H 报文开始 ETX 03H 报文结束 帧格式: STX CMD DATA . DATA ETX SUM(upper) SUM(lower) 例子: STX ,CMD ,ADDRESS, BYTES, ETX, SUM 02H, 30H, 31H,30H,46H,36H, 30H,34H, 03H, 37H,34H SUM=CMD+.+ETX; 30h+31h+30h+46h+36

3、h+30h+34h+03h=74h; http:/ 三菱工控网 文章:三菱 PLC 通讯协议参考 ,总 17 页之第 2 页 累加和超过两位取低两位 三菱 FX 系列 PLC 编程口通信协议举例 三菱 FX 系列 PLC 专用协议通信指令一览 FX 系列 PLC 专用协议通信指令一览 以下将详细列出 PLC 专用协议通信的指令: 指令 注释 BR 以 1 点为单位,读出位元件的状态 WR 以 16 点为单位,读出位元件的状态,或以 1 字为单位,读出字元件的值 BW 以 1 点为单位,写入位元件的状态 WW 以 16 点为单位,写入位元件的状态,或以 1 字为单位,写入值到字元件 BT 以 1

4、 点为单位, SET/RESET 位元件 WT 以 16 点为单位, SET/RESET 位元件,或写入值到字元件 RR 控制 PLC 运行 RUN RS 控制 PLC 停止 STOP PC 读出 PLC 设备类型 TT 连接测试 注:位元件包括 X,Y,M,S 以及 T,C 的线圈等; 字元件包括 D,T,C,KnX,KnY,KnM 等。 FX 系列 PLC 编程口通信协议 II 三菱 FX 系列 PLC 编程口通信协议举例 1、 DEVICE READ(读出软设备状态值) 计算机向 PLC 发送: 始 命令 首地址 位数 终 和校验 STX CMD GROUP ADDRESS BYTES

5、ETX SUM 例子:从 D123 开始读取 4 个字节数据 02h 30h 31h,30h,46h,36h 30h,34h 03h 37h,34h 地址算法 :address=address*2+1000h 再转换成 ASCII http:/ 三菱工控网 文章:三菱 PLC 通讯协议参考 ,总 17 页之第 3 页 31h,30h,46h,36h PLC 返回 STX 1ST DATA 2ND DATA . LAST DATA ETX SUM 注:最多可以读取 64 个字节的数据 例子:从指定的存储器单元读到 3584 这个数据 02h 33h 35h 38h 34h 03h 44h,36h

6、 2、 DEVICE WRITE(向 PLC 软设备写入值) 始 命令 首地址 位数 数据 终 和校验 STX CMD GROUP ADDRESS BYTES 1ST DATA 2ND DATA . LAST DATA ETX SUM 例子:向 D123 开始的两个存储器中写入 1234,ABCD 02h 31h 31h,30h,46h,36h 30h,34h 33h,34h,31h,32h,43h,44h,41h,42h 03h 34h,39h PLC 返回 ACK (06H) 接受正确 NAK (15H) 接受错误 3、位设备强制置位 /复位 FORCE ON 置位 始 命令 地址 终 和

7、校验 STX CMD ADDRESS ETX SUM 02h 37h address 03h sum FORCE OFF 复位 始 命令 地址 终 和校验 STX CMD ADDRESS ETX SUM 02h 38h address 03h sum http:/ 三菱工控网 文章:三菱 PLC 通讯协议参考 ,总 17 页之第 4 页 PLC 返回 ACK(06H) 接受正确 NAK(15H) 接受错误 设备强制中的地址公式 :Address=Address/8+100h 说明: 1.帧中的 BYTES 表示需要读取或者写入的字节数。 2.地址算法上有说明。 3.累加和是从 STX 后面一个

8、字节开始累加到 ETX 的和。 三菱 FX 系列 PLC 编程口通信源代码 fx_comm.h #define DELAY_TIMES 30000L #define TRUE 1 #define FALSE 0 #define TRUE 1 #define FALSE 0 #define FORCE_ON 0x37 #define FORCE_OFF 0x38 void init_plc(void); int check_plc(void); int _read_data_register(unsigned int uAddress,unsigned int number); int _rea

9、d_mdata_register(unsigned int uAddress,unsigned int number); int _write_data_register(unsigned int uAddress,unsigned int number); int _force_m_contact(unsigned int uAddress,unsigned char ucOn_off); int read_data_register(unsigned int uAddress,unsigned int number); int read_mdata_register(unsigned in

10、t uAddress,unsigned int number); int write data register(unsigned int uAddress,unsigned int number); http:/ 三菱工控网 文章:三菱 PLC 通讯协议参考 ,总 17 页之第 5 页 int force_m_contact(unsigned int uAddress,unsigned char ucOn_off); int _read_m_register(unsigned int uAddress,unsigned int number); int read_m_register(uns

11、igned int uAddress,unsigned int number); int TESTING=0; unsigned int uRead_value25; unsigned int uWrite_value25; unsigned int COMM_PORT=1; unsigned int STATS_PORT=0x2fd; unsigned int DATA_PORT=0x2f8; void init_plc(void) _AX=0xfa; _DX=COMM_PORT; geninterrupt(0x14); while(inportb(STATS_PORT)&1)!=0) in

12、portb(DATA_PORT); /返回顶部 int check_plc(void) long lTmp; if(TESTING=1)return TRUE; init_plc(); for(lTmp=0L;lTmp=DELAY_TIMES) return(FALSE); outportb(DATA_PORT,5); disable(); for(lTmp=0L;lTmp=DELAY_TIMES) enable(); return(FALSE); if(lTmp=inportb(DATA_PORT)=6) enable(); return(TRUE); http:/ 三菱工控网 文章:三菱

13、PLC 通讯协议参考 ,总 17 页之第 6 页 else enable(); return(FALSE); /返回顶部 int read_data_register(unsigned int uAddress,unsigned int number) int i; for(i=0;i=10) uSend6=(unsigned char)(num/16+0x41-10); else uSend6=(unsigned char)(num/16+0x30); if(num%16)=10) uSend7=(unsigned char)(num%16)+0x41-10); else uSend7=(u

14、nsigned char)(num%16)+0x30); uAddress=uAddress*2+0x1000; uTmp=uAddress & 0x000f; uSend5=(uTmp4) & 0x000f; uSend4=(uTmp8) & 0x000f; uSend3=(uTmp12)&0x000f; uSend2=(uTmp4)&0x000f; uSend9=(uTmp=DELAY_TIMES) return(FALSE); outportb(DATA_PORT,uSendi); disable(); for(lTmp=0;lTmp=DELAY_TIMES) enable(); return(FALSE); uReceive0=inportb(DATA_PORT); if(uReceive0!=2) enable(); return(FALSE); for(i=1;i=DELAY_TIMES) enable(); return(FALSE); uReceivei=inportb(DATA_PORT); enable(); uSum=0; for(i=1;i4)&0xf; uTmp=(uTmp

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号