1、协议介绍
三菱 PLC MC 协议是一种用于三菱 PLC 与上位机之间进行数据通信的协议,也称为 Mitsubishi Communication Protocol。该协议支持串口、以太网等多种通讯方式,可实现实时数据的采集和交换。三菱PLC的MC协议是一种数据通信协议,它用于在计算机和三菱PLC之间传输数据。MC协议是三菱公司独有的一种协议,主要用于控制三菱PLC。三菱MC协议目的是让外部设备实现与PLC的通信,也就数据的读取和写入。
MC协议是Melsec协议的简称。
MC 协议包含两种通信方式:ASCII 码方式和二进制方式。其中,ASCII 码方式使用英文字符进行编码传输,通讯速率较慢;二进制方式则使用二进制进行编码传输,通讯速率更快。同时,MC 协议也支持多个 PLC 之间的通信,可实现分布式控制和数据共享。
MC 协议具有以下特点:
- 通讯速度快,适用于实时控制和数据采集等场景。
- 支持多种通信方式和多个 PLC 之间的通信,具有较好的通用性和兼容性。
- 支持多种数据格式,包括位、字、浮点数等类型,可实现多种数据传输和交换。
- 具有高效的数据校验和重发机制,保证通信的可靠性和稳定性。
三菱 PLC MC 协议可以支持许多三菱 PLC 设备,包括以下系列:
- FX 系列:FX3G、FX3U、FX3UC、FX5U 等
- A 系列:A0J、A1S、A2S、A3S 等
- Q 系列:Q02H、Q03UDCPU、QD75 等
- L 系列:L02CPU、L02SCPU、L06CPU 等
- GOT 系列:GT10、GT11、GT14 等
- iQ-R 系列:R04CPU、R08CPU、R16CPU 等
- iQ-F 系列:F04CPU、F08CPU、F16CPU 等
- C 系列:C24、C40、C60 等
1.三菱MC协议的目的
MC协议的目的是开放PLC内部寄存器给外部设备,实现外部设备和PLC的数据交互。简单说就是允许外部设备通过MC协议来读/写PLC里面的寄存器
2. 通信协议方式
通讯方式有485和TCP/IP两种,本次只介绍TCP/IP下的配置和通讯方法。采用一发一收模式,外部设备主动发起通讯,发送特定网络帧给PLC;PLC在接收后返回一帧,如果接收的帧格式错误,则返回帧中会提示错误类型,如果接收帧格式正确,则返回写入成功帧或返回对应数据帧。
3. 通讯格式和内容
MC协议的通讯格式有很多种:3E、3C、4C、4E帧格式
2、MC协议帧模式
在三菱的PLC通信的MC协议中,分为串行通信的报文和以太网接口的报文。MC协议有A-1E和Qna-3E两种模式,这两种都是三菱PLC通信协议中比较常用的两种。
A-1E是三菱PLC通信协议中最早的一种,它是一种基于二进制通信协议的协议,适用于三菱FX系列PLC和A系列PLC。该协议支持点对点通信和多点通信,可以实现PLC之间的数据交换和远程监控等功能。
Qna-3E模式是三菱PLC通信协议中较新的一种,它是一种基于ASCII码通信协议的协议,适用于三菱Q系列PLC和FX3U系列PLC。该协议支持点对点通信和多点通信,可以实现PLC之间的数据交换、远程监控和远程编程等功能。
总的来说,三菱PLC通信协议是三菱PLC与其他设备之间进行通信的重要手段,不同的协议适用于不同的PLC型号和通信需求。
一般我们使用比较多的是以太网通信,对于FX5U系列/Q系列/Qna系列/L系列的PLC,通常会使用QnA兼容3E帧,对于FX3U系列,我们需要加以太网模块,采用A兼容1E帧。
MC协议的数据格式为16位寄存器,支持读取和写入操作。其中,读取操作可以读取单个寄存器或多个连续寄存器,写入操作可以写入单个寄存器或多个连续寄存器,总之,三菱PLC MC协议是一种高效、安全、可靠的通信协议,广泛应用于工业自动化控制系统中。
3、MC协议的A-1E帧
4、MC协议的Qna-3E帧
举例说明:指令为向软元件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
发送帧内容解析:
响应帧内容解析:
具体的实例例子将在下节详细介绍
5、软元件类型介绍
PLC是在继电器控制路线基础上发展起来的,继电器控制线路有时间继电器、中间继电器等,而PLC内部也有类似的器件,由于这些器件以软件形似存在,故称为软元件。PLC程序由指令和软元件组成,指令的功能是发出命令,软元件是指令的执行对象,比如,SET为1指令,Y000是PLC的一种软元件(输出继电器),“SET Y000”就是命令PLC的输出继电器Y000的转台变为1。由此可见,编写PLC程序必须了解PLC的指令级软元件。
软元件就是存储区
软元件就是存储区
软元件就是存储区
三菱PLC软元件有:(X/Y)输入输出继电器;(M)辅助继电器;(S)状态继电器;(T)定时器;(C)计数器;(D)数据寄存器;(P)指针;(N)嵌套层数;(K、H、E)常数。
一、输入继电器(X)和输出继电器(Y)
1)输入继电器(X)
输入继电器用于接受PLC输入端子送入的外部开关信号,它与PLC的输入端子连接,其表示符号为X,按八进制方式编号,输入继电器与外部对应的输入端子编号的相同的。三菱FX3U-48MR/ES-A型PLC外部有8个输入端子,其编号为X000~X007、X010~X017、X020~X027,相应的内部也有24个相同编号的输入继电器来接收这样端子输的开关信号。
一个输入继电器可以有无数个编号相同的常闭触点和常开触点,当某个输入端子(如X000)外接开关闭合时,PLC内部相同编号输入继电器(X000)状态变为ON,那么程序中相同编号的常开触点处于闭合,常闭触点处于断开。
2)输出继电器(Y)
输出继电器(常称输出线圈)用于将PLC内部开关信号送出,它与PLC输出端子连接,其表示符号为Y,也按八进制方式编号,输出继电器与外部对应的输出端子编号是相同的。三菱FX3U-48MR/ES-A型PLC外部有24个输出端子,其编号为Y000-¥007、Y010-1017、Y020~Y027,相应地内部有24个相同编号的输出继电器,这些输出继电器的状态由相同编号的外部输出端子送出。
一个输出继电器只有一个与输出端子连接的常开触点(又称硬触点),但在编程时可使用无数个编号相同的常开触点和常闭触点。当某个输出继电器(如Y000)状态为ON时它除了会使相同编号的输出端子内部的硬触点闭合外,还会使程序中的相同编号的常开触点闭合,常闭触点断开。
三菱FX系列PLC支持的输入继电器、输出继电器如图表所示
二、辅助继电器(M)
辅助继电器是PLC内部继电器,它与输入、输出继电器不同,不能接收输入输入端子送来的信号,也不能驱动输出端子。辅助继电器表示符号为M,按十进制方式编号,如M0~M499、M500~M1023等。一个辅助继电器可以有无数个编号相同的常闭触点和常开触点。
辅助继电器分为四类:一般型、停电保持型、停电保持专用型、特殊用途型。
三、D数据寄存器
数据寄存器D是专门用于存储数据的软元件,供数据传送、数据比较、
数据运算等操作。数据寄存器都是16位,可存放16位二进制数,也可将两
个数据寄存器组合存放32位二进制数。数据寄存器主要有通用数据寄存器、
锁存数据寄存器、特殊数据寄存器和变址数据寄存器。
1)通用数据寄存器:一旦写入数据,并在未写入其它数据时,寄存器中
的数据是不会变化的。但如果PLC停止或断电时,所有数据清零。
FX0S/1S/1N(D0-D127)128点;FX2N/3U(D0-D199)200点。
2)锁存数据寄存器:具有断电保持功能,PLC从运行到停止,寄存器内
部数据不变。FX0S/1S(D128-D255)128点;FX1N(D128-D7999)7872点;
FX2N/3U(D200-D7999)7800点。
3)特殊数据寄存器:特殊寄存器分为两种,一种是只能读取或利用其
中数据的寄存器,另一种是用来写入特定数据的寄存器。
FX0S/1S/1N/2N(D8000-D8255)256点,FX3U(D8000-D8511)512点。
4)变址寄存器:用V、Z来表示,与数据寄存器相同也可以用于读写操
作,但主要用于寄存器地址的修改。例如当Z0=10时,则D10Z0相当于
D20(10+10)V0与Z0可组成一个32位数据,V为高位,Z为低位。
6、三菱PLC数据“位”与“字”的区别
对于没有计算机基础的工控人员可能对数据这块不太清楚,现在就说下三菱PLC数据类型。
首先我们先了解下“位”与“字”的区别,位一共有两种状态0和1,0代表关、1代表开,对用于PLC中的X、Y、M、S,处理关/开信号的软元件称之为位软元件。我们再说下字,字有单字和双字,单字由16个位组成的,双字由32个位组成,对应于PLC的T、C、D、R处理数值信号的软元件称之为字软元件。
位和字的表示通过上图,我们知道位是1位二进制,字是16位二进制,在PLC中说的几位几位就是二进制的并非十进制。位软元件的组合也能处理数值,通过Kn和起始位软元件的组合来表示,在PLC程序中经常看到MOV d100 K4M0,MOV d100 K2M0我们看下是怎么回事:
MOV d100 K4M0
K4M0的数值就是D0,Kn表示位数以4为单位,K1M0表示M0、M1、M2、M3。
MOV d100 K2M0
数据长度不足的高位部分不被传送。
了解这些我们再说下,PLC基本的数据类型:2进制数、8进制数、10进制数、16进制数。
2进制数,PLC中内部数据处理方式,它是最基本的存储和运算的方式,所有的10机制、16进制在PLC中都要转化为2进制处理,在触摸屏等上位机会自动抓换成10进制显示。
8进制,FX系列可编程控制器中,输入继电器、输出继电器的软元件编号都是以8进制数分配的,由于在8进制数中,不存在[8,9]所以按[0~7、10~17、…70~77、100~107]上升排列。
10进制,辅助继电器(M)、定时器(T)、计数器(C)、状态(S)软元件编号(其他牌子的PLC的编号方式有12进制等),应用指令的操作数中的数值指定和指令动作的指定。
16进制,应用指令的操作数中的数值指定和指令动作的指定,通常在变频器的通讯地址、命令码表示。
三菱PLC(可编程逻辑控制器)支持多种数据类型,其中包括:
- 位(bit):通常表示为 `BOOL` 类型,用于表示开关状态(ON或OFF)。
- 字节(Byte):等同于8位,从0到255。
- 字(Word):等同于16位,从0到65535。
- 双字(DoubleWord):等同于32位,从0到4294967295。
- 16位整数(Int):有符号数,范围为-32768至32767。
- 32位整数(Dint):同样是有符号数,范围为-2147483648至2147483647。
- 浮点数(Real):32位,可以表示小数。
此外,还有其他特殊类型的变量,如:
- 定时器(Timer):用于计时功能。
- 累计定时器(Retentive Timer):用于记录周期性事件的时间间隔。
- 计数器(Counter):用于递增或递减数值。
- 长计数器(Long Counter):用于长时间计数的应用。
- 指针(Pointer):指向内存中某个地址的位置。
这些数据类型可以根据需要进行组合和使用,以满足不同的编程需求,了解这些对于上位机软件开发很重要。
打字不易,截图不易,代码不易,准备不易,原创不易,多多点赞收藏,江湖有你,共同致富。