三菱FX系列PLC编程口通信协议总览

上传人:宝路 文档编号:21431657 上传时间:2017-11-23 格式:DOC 页数:3 大小:33.56KB
返回 下载 相关 举报
三菱FX系列PLC编程口通信协议总览_第1页
第1页 / 共3页
三菱FX系列PLC编程口通信协议总览_第2页
第2页 / 共3页
三菱FX系列PLC编程口通信协议总览_第3页
第3页 / 共3页
亲,该文档总共3页,全部预览完了,如果喜欢就下载吧!
资源描述

《三菱FX系列PLC编程口通信协议总览》由会员分享,可在线阅读,更多相关《三菱FX系列PLC编程口通信协议总览(3页珍藏版)》请在金锄头文库上搜索。

1、三菱FX 系列PLC 编程口通信协议总览三菱FX 系列 PLC 编程口通信协议总览该协议实际上适用于PLC 编程端口以及 FX-232AW 模块的通信感谢网友visualboy 提供通讯格式命令 命令码 目标设备DEVICE READ CMD 0 X,Y,M,S,T,C,DDEVICE WRITE CMD 1 X,Y,M,S,T,C,DFORCE ON CMD 7 X,Y,M,S,T,CFORCE OFF CMD 8 X,Y,M,S,T,C传输格式: RS232C波特率: 9600bps奇偶: even校验: 累加方式和校验字符: ASCII16 进制代码ENQ 05H 请求ACK 06H P

2、LC 正确响应NAK 15H PLC 错误响应STX 02H 报文开始ETX 03H 报文结束帧格式STX CMD DATA . DATA ETX SUM(upper) SUM(lower)例子STX ,CMD ,ADDRESS, BYTES, ETX, SUM02H, 30H, 31H,30H,46H,36H, 30H,34H, 03H, 37H,34HSUM=CMD+.+ETX30h+31h+30h+46h+36h+30h+34h+03h=74h;累加和超过两位取低两位1 DEVICE READ 读出软设备状态值计算机向PLC 发送始 命令 首地址 位数 终 和校验STX CMD GROU

3、P ADDRESS BYTES ETX SUM例子从D123 开始读取4 个字节数据02h 30h 31h,30h,46h,36h 30h,34h 03h 37h,34h地址算法:address=address*2+1000h再转换成ASCII31h,30h,46h,36hPLC 返回STX 1ST DATA 2ND DATA . LAST DATA ETX SUM注最多可以读取64 个字节的数据例子从指定的存储器单元读到3584 这个数据02h 33h 35h 38h 34h 03h 44h,36h2 DEVICE WRITE 向 PLC 软设备写入值始 命令 首地址 位数 数据 终 和校验

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

5、 地址 终 和校验STX CMD ADDRESS ETX SUM02h 38h address 03h sumPLC 返回ACK(06H) 接受正确NAK(15H) 接受错误设备强制中的地址公式:Address=Address/8+100h(设备强制中的地址公式:Address=Address * 100h + (*) (必须为 4 位,不足 4 位前面补 0)注:*号所代表值:C:14 M:8 T:6 Y:5 X:4 S:0如对 M2 置位,则为地址为:2*256(100H)+8=0520 转为十六进制为:0208 再换为 ASCII 就是: 30 32 30 38)说明1.帧中的BYTES

6、 表示需要读取或者写入的字节数2.地址算法上有说明3.累加和是从STX 后面一个字节开始累加到ETX 的和VB 读写三菱 FX 系列 PLC 数据示例通过前面两篇文章,我们了解了三菱 FX 系列 PLC 的编程口通信协议。为了更方便读者学习这里提供一个用 VB 编写的示例,其中包含一个通用模块,如果你需要对此类 PLC 进行读写数据区的操作可以下载看看。三菱 FX 系列 PLC 的校验采用的是和校验,在写数据和读数据时都会有这个和校验,和校验用于检查数据包是否有错。因此我们必需知道和校验的算法,才能成功地进行通信。在这里我们提供了一个和校验的 VB 源代码: *Private Function

7、 Check_FCS(mStr As String) As StringDim K As Integer, mTest As IntegerFor K = 1 To Len(mStr)mTest = mTest + Asc(Mid(mStr, K, 1)NextCheck_FCS = Right(Hex(mTest), 2)End Function*函数中的 mStr 参数为命令、位数、数据、终止符的合集,读取时不包括数据。使用 Check_FCS 函数时将返回和校验码。当向 PLC 写数据时,数据必须为四位的十六进制数,并且低位在前、高位在后。这里提供一个循环代码,将一个数组里的整数转换为向

8、 PLC 写入数据的字符串:For Q = 0 To UBound(mData)myHex = myHex & Format(Hex(mData(Q) Mod &HFF), 00) & Format(Hex(mData(Q) &HFF), 00)Next在上面的代码中 mData 为向 PLC 写入数据的数组,myHex 最终得到的就是写入 PLC 时所要的数据字符串。同样的从 PLC 读出来的数据也是四位的十六进制,低位在前、高位在后。所以我们有必要将其转换为对应的整数。其主要的转换代码如下:ReDim mData(mCounts - 1)For Q = 0 To mCounts - 1mData(Q) = &H & (Mid(myHex, 4 + Q * 4, 2) & Mid(myHex, 2 + Q * 4, 2)Next mCounts 为要读取数据区的个数,myHex 是串口返回来的数据,经过上面计算返回的整数值将排列在 mData 数组里。

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 其它办公文档

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