1.三菱MC协议的目的

MC协议的目的是开放PLC内部寄存器给外部设备,实现外部设备和PLC的数据交互。简单说就是允许外部设备通过MC协议来读/写PLC里面的寄存器

2. 通信协议方式

通讯方式有485和TCP/IP两种,本次只介绍TCP/IP下的配置和通讯方法,其实两者一样没啥大区别。

采用一发一收模式,外部设备主动发起通讯,发送特定网络帧给PLC;PLC在接收后返回一帧,如果接收的帧格式错误,则返回帧中会提示错误类型,如果接收帧格式正确,则返回写入成功帧或返回对应数据帧。

3. 通讯格式和内容

MC协议的通讯格式有很多种:3E、3C、4C、4E帧格式

先从3E帧开始分析然后说一下和其他三种的差别,具体可以参见《MELSEC通讯协议参考手册》

通讯内容分为二进制和ASCII文本,两者传输内容一致,只是形式不同,因为二进制相对于ASCII码形式一帧的数据长度更短,且数据不需要转换,所以通讯效率更高,推荐使用二进制方式。

故本次介绍通讯格式:3E帧,二进制。

发送帧格式,头部由TCP/IP协议自动添加 注意:两个字节的部分低位字节在前高位字节在后。

c语言mc协议,三菱PLC MC协议的配置和使用简析-编程知识网

响应帧格式

c语言mc协议,三菱PLC MC协议的配置和使用简析-编程知识网

4. 在PLC中的设置

PLC中只需要简单设置参数即可并不需要额外编程,步骤如下:1.在右侧工程栏中双击PLC参数;2.在弹框中选择内置以太网端口设置,设置IP,设置通信数据代码设置,勾选允许RUN中写入;3.点击打开设置,在弹框第一栏中选择TCP协议,MC协议,端口号根据自己需求设置比如4999,然后设置结束,设置结束,把新的配置烧写到PLC中即可。

如果PLC没有自带网卡模块则需要在网络参数中选择对应设备进行设置,设置过程类似

c语言mc协议,三菱PLC MC协议的配置和使用简析-编程知识网

c语言mc协议,三菱PLC MC协议的配置和使用简析-编程知识网

c语言mc协议,三菱PLC MC协议的配置和使用简析-编程知识网

5. 举例说明:指令为向软元件D7000写入值H000C

发送帧内容为:50 00 00 FF FF 03 00 0E 00 10 00 01 14 00 00 58 1B 00 A8 01 00 0C 00

响应帧内容为:D0 00 00 FF FF 03 00 02 00 00 00

发送帧内容解析:

c语言mc协议,三菱PLC MC协议的配置和使用简析-编程知识网

响应帧内容解析:

c语言mc协议,三菱PLC MC协议的配置和使用简析-编程知识网

6. 举例说明:读取软元件D7000开始的连续5个软元件的值,其中0C是上一次写入的数

发送帧内容为:50 00 00 FF FF 03 00 0C 00 10 00 01 04 00 00 58 1B 00 A8 05 00

响应帧内容为:D0 00 00 FF FF 03 00 0C 00 00 00 0C 00 00 00 00 00 00 00 00 00

7. 软元件类型对应软元件代码

下图是基本型QCPU中软元件名称和软元件代码的对应关系,分为ASCII和二进制两种情况,其他类型可以查询《MELSEC 通信协议参考手册》

c语言mc协议,三菱PLC MC协议的配置和使用简析-编程知识网

8. 指令及子指令列表

c语言mc协议,三菱PLC MC协议的配置和使用简析-编程知识网

9. 返回错误帧时的处理方法

在发送格式不正确时,PLC会返回包含错误信息的返回帧。其错误信息需要在对应PLC手册中查询,比如三菱LCPU系列中对错误的描述如下图,可对应查看错误类型,以便解决问题。

c语言mc协议,三菱PLC MC协议的配置和使用简析-编程知识网

c语言mc协议,三菱PLC MC协议的配置和使用简析-编程知识网