科创梦想,节效未来
INEWS / 新闻中心

新板—三菱PLC通讯中PC机的开发

来源: | 作者:合肥科节智能科技有限公司 | 发布时间: 1068天前 | 701 次浏览 | 分享到:

MC协议是开发三菱系列PLC时上位机必须掌握的一种通信协议。其目的是使外部设备能够通过串行通信模块C24或以太网接口模块E71访问可编程控制器CPU的数据。


MC协议是Melsec协议的简称。


通信帧类型当外部设备通过C24/E71访问可编程控制器CPU时,它可以选择不同的通信帧和数据格式,如下所示:


通信帧命名规范通信帧命名格式如下:


兼容xxx n m帧(例如:QnA兼容3C帧,QnA兼容3E帧)


1.xxx用于表示与以前产品模块的指令兼容的对象可编程控制器CPU。


答:A系列可编程控制器CPU


QnA系列可编程控制器CPU


2.对应于n的前一个乘积模块的框架。


1:与A系列计算机链接模块和以太网接口模块支持的指令兼容的通信框架


2:与QnA系列串行通信模块支持的QnA简单框架兼容


3: QnA系列串行通信模块支持的QnA帧和兼容的QnA系列以太网接口模块支持的通信帧


4:与QnA系列串行通信模块支持的QnA扩展框架兼容


3.m是指用于数据通信的相应帧的目标模块。


列车员:C24


爱因斯坦:E71


通信模式从前面的描述中,我们可以知道MC协议兼容串行通信和以太网通信。


一般我们在上位机使用以太网通信。对于FX5U系列/Q系列/Qna系列/L系列PLC,通常使用Qna兼容3E框架。对于FX3U系列,我们需要添加以太网模块,并采用兼容的1E框架。


对于串行设备,一般使用QnA兼容的2C帧和QnA兼容的4C帧。


通信编码格式有两种:ASCII和二进制。与ASCII相比,前者的通信数据量约为后者的一半,因此二进制编码可以缩短通信时间。


通常,通过MC协议的数据通信是半双工通信。


当访问可编程控制器CPU时,应在收到来自可编程控制器CPU侧的与先前发送的指令消息相对应的响应消息后,发送下一条指令消息。


在收到响应消息之前,无法发送下一条指令消息。


PLC设置三菱PLC在上位机开发中要采用MC协议,不需要额外编程,只需要一些简单的配置。


1.双击右边工程栏中的PLC参数;


2.在弹出的框中选择内置以太网端口设置、IP设置、通信数据码设置,并在RUN中勾选允许写入;


3.点击打开设置,在弹出框的第一栏选择TCP协议和MC协议,根据自己的要求设置端口号为4999,然后完成设置,重新下载PLC程序;


4.断电后重启PLC。


协议帧了解以上内容后,让我们对协议帧有更深入的了解。为了方便起见,我们以以太网的Qna兼容3E帧为例来说明。其他框架也差不多。


一般来说,有三种类型的协议:请求帧、响应帧和异常帧。


请求帧:发送请求的消息。


响应帧:如果请求正确,控制器CPU将返回一个响应帧。


异常帧:如果请求是错误的,CPU将返回一个异常帧。


读取请求帧消息格式:


读取响应帧消息格式:


读取异常帧报文格式:


写请求帧消息格式:


写入响应帧消息格式:


写入异常帧消息格式:


上位机开发实用案例读取案例:从D0中读取5个寄存器,我们结合协议文件按照报文格式拼接报文。


按如下方式发送消息:


副团长:0x50 0x00


网络号:0x00


PLC编号:0xFF


请求模块的I/O号:0xFF 0x03


请求的目标模块站号:0x00


请求数据的长度:0x0C 0x00


CPU监控定时器:0x0A 0x00


指令:0x01 0x04


子指令:0x00 0x00


初始软分量:0x00 0x00 0x00


软件组件代码:0xA8


软元件数量:0x05 0x00


响应消息如下:


副组长:0xD0 0x00


网络号:0x00


PLC编号:0xFF


请求模块的I/O号:0xFF 0x03


请求的目标模块站号:0x00


响应数据长度:0x0C 0x00


结束代码:0x00 0x00


软元件数据:0x0b 0x 00 0x 00 0x 00 0x 00 0x 00 0x 00 0x 00 0x 00


网络助手的测试结果:


这样我们就知道D0-D4分别是0x0B 0x 00 0x 00 0x 00 0x 00 0x 00 0x 00 0x 00,转换成数据就是11,0,0,0,0。


同样的原理也适用于其他存储区域的读写。