三菱plc通讯模块(三菱plc通讯指令)

1、SLMP协议和MC协议有些相同,所以这里使用的是3E帧形势的报文格式。

2、报文是以二进制代码进行数据通信的情况下进行通信的。

三菱plc通讯模块(三菱plc通讯指令)

3、例如:50 00 00 FF FF 03 00 0E 00 00 00 01 14 00 00 D0 07 00 A8 01 00 00 00

报文解析:50 00(副帧头) 00(请求目标网络编号) FF(请求目标站号) FF 03(请求目标模块I/O编号) 00(请求目标多点站号) 0E 00(请求数据长) 00 00(监视定时器) 01 14(指令) 00 00(子指令) D0 07 00(起始软元件编号) A8(软元件代码) 01 00(软元件点数) 00 00(点数的写入数据)

帧头:

三菱plc通讯模块(三菱plc通讯指令)

副帧头:50 00 副帧头显示其为指令报文还是响应报文,所以上面的 50 00 表示指令报文。

三菱plc通讯模块(三菱plc通讯指令)

请求目标网络编号 00 ,请求目标站号 FF:

三菱plc通讯模块(三菱plc通讯指令)

如果你是直接和连接的PLC进行通信,网络编号就设成00H,如果是通过连接PLC和网络里的其他PLC连接,就设置成其他的网络号。目标站号也是,如果是和连接的PLC进行通信就设置成FFH,如果是网络里的其他PLC就设置其他PLC的站号。

三菱plc通讯模块(三菱plc通讯指令)

请求目标模块I/O编号:

三菱plc通讯模块(三菱plc通讯指令)

三菱plc通讯模块(三菱plc通讯指令)

请求目标多点站号:

三菱plc通讯模块(三菱plc通讯指令)

三菱plc通讯模块(三菱plc通讯指令)

请求数据长度:以16进制数指定“监视定时器”~“请求数据”的合计大小。(单位: 字节)就是从数据长度后面开始的到结尾的字节数。

例如:你请求数据长为24字节(18H)的情况下,因为是先传送低字节,后传送高字节,所以你的报文要写成1800H,不能写成0018H。

三菱plc通讯模块(三菱plc通讯指令)

监视定时器:

三菱plc通讯模块(三菱plc通讯指令)

指令、子指令:

因为指令和子指令都是占两个字节,通信的时候是先传送低字节,后传送高字节,所以报文格式是:01 14 00 00

三菱plc通讯模块(三菱plc通讯指令)

起始软元件编号、软元件代码:例如数据寄存器D2000,他的起始软元件编号就是2000,转换成十六进制就是 07D0 ,软元件代码是十六进制 A8 。软元件编号因为需要3个字节,所以就是 00 07 D0 ,并且是从低字节开始传送,所以报文格式是:D0 07 00

三菱plc通讯模块(三菱plc通讯指令)

软元件点数:就是你要读取或写入的软元件的个数。

这里只写入1个寄存器。

要写入的数据:如果是写入数据,在软元件点数后面就要加上你要写的数据,如果是读取就不用。

上面整个报文的内容就是:向5UPLC的D2000数据寄存器里写入0。

同样,如果是批量读取操作的话,你只需要更改请求数据长度,指令和子指令,软元件等就可以了:

例如:50 00 00 FF FF 03 00 0C 00 00 00 01 04 00 00 D0 07 00 A8 05 00

以上报文就是读取PLC的数据寄存器,从D2000开始的5个寄存器里的值,

PLC正常响应的报文是:D0 00 00 FF FF 03 00 0C 00 00 00 00 00 00 00 00 00 00 00 00 00

最后10个字节的内容呢就是D2000到D2004里面的数值,注意高低字节的交换。

如果异常结束,那么PLC返回的报文是按照下图的格式返回:

三菱plc通讯模块(三菱plc通讯指令)

本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 sumchina520@foxmail.com 举报,一经查实,本站将立刻删除。
如若转载,请注明出处:https://www.summeng.net/2787.html