C#上位机与三菱PLC的通信02--MC协议介绍

1、协议介绍

三菱 PLC MC 协议是一种用于三菱 PLC 与上位机之间进行数据通信的协议,也称为 Mitsubishi Communication Protocol。该协议支持串口、以太网等多种通讯方式,可实现实时数据的采集和交换。三菱PLC的MC协议是一种数据通信协议,它用于在计算机和三菱PLC之间传输数据。MC协议是三菱公司独有的一种协议,主要用于控制三菱PLC。三菱MC协议目的是让外部设备实现与PLC的通信,也就数据的读取和写入。

MC协议是Melsec协议的简称。

MC 协议包含两种通信方式:ASCII 码方式和二进制方式。其中,ASCII 码方式使用英文字符进行编码传输,通讯速率较慢;二进制方式则使用二进制进行编码传输,通讯速率更快。同时,MC 协议也支持多个 PLC 之间的通信,可实现分布式控制和数据共享。

MC 协议具有以下特点:

  1. 通讯速度快,适用于实时控制和数据采集等场景。
  2. 支持多种通信方式和多个 PLC 之间的通信,具有较好的通用性和兼容性。
  3. 支持多种数据格式,包括位、字、浮点数等类型,可实现多种数据传输和交换。
  4. 具有高效的数据校验和重发机制,保证通信的可靠性和稳定性。

三菱 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帧

C#上位机与三菱PLC的通信02--MC协议介绍_第1张图片

C#上位机与三菱PLC的通信02--MC协议介绍_第2张图片 

C#上位机与三菱PLC的通信02--MC协议介绍_第3张图片 

C#上位机与三菱PLC的通信02--MC协议介绍_第4张图片

C#上位机与三菱PLC的通信02--MC协议介绍_第5张图片 

C#上位机与三菱PLC的通信02--MC协议介绍_第6张图片 

4、MC协议的Qna-3E帧

C#上位机与三菱PLC的通信02--MC协议介绍_第7张图片

举例说明:指令为向软元件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#上位机与三菱PLC的通信02--MC协议介绍_第8张图片响应帧内容解析:

C#上位机与三菱PLC的通信02--MC协议介绍_第9张图片

 具体的实例例子将在下节详细介绍

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支持的输入继电器、输出继电器如图表所示C#上位机与三菱PLC的通信02--MC协议介绍_第10张图片

二、辅助继电器(M)

辅助继电器是PLC内部继电器,它与输入、输出继电器不同,不能接收输入输入端子送来的信号,也不能驱动输出端子。辅助继电器表示符号为M,按十进制方式编号,如M0~M499、M500~M1023等。一个辅助继电器可以有无数个编号相同的常闭触点和常开触点。

辅助继电器分为四类:一般型、停电保持型、停电保持专用型、特殊用途型。

C#上位机与三菱PLC的通信02--MC协议介绍_第11张图片

 三、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数据类型。

首先我们先了解下的区别,位一共有两种状态01,0代表关、1代表开,对用于PLC中的XYMS,处理关/开信号的软元件称之为位软元件。我们再说下字,字有单字和双字,单字由16个位组成的,双字由32个位组成,对应于PLCTCDR处理数值信号的软元件称之为字软元件。C#上位机与三菱PLC的通信02--MC协议介绍_第12张图片

位和字的表示通过上图,我们知道位是1位二进制,字是16位二进制,在PLC中说的几位几位就是二进制的并非十进制。位软元件的组合也能处理数值,通过Kn和起始位软元件的组合来表示,在PLC程序中经常看到MOV d100 K4M0MOV d100 K2M0我们看下是怎么回事:


C#上位机与三菱PLC的通信02--MC协议介绍_第13张图片 

MOV d100 K4M0

K4M0的数值就是D0Kn表示位数以4为单位,K1M0表示M0M1M2M3

C#上位机与三菱PLC的通信02--MC协议介绍_第14张图片 

MOV d100 K2M0

数据长度不足的高位部分不被传送。

了解这些我们再说下,PLC基本的数据类型:2进制数、8进制数、10进制数、16进制数。

2进制数,PLC中内部数据处理方式,它是最基本的存储和运算的方式,所有的10机制、16进制在PLC中都要转化为2进制处理,在触摸屏等上位机会自动抓换成10进制显示。

8进制,FX系列可编程控制器中,输入继电器、输出继电器的软元件编号都是以8进制数分配的,由于在8进制数中,不存在[8,9]所以按[071017…7077100107]上升排列。

10进制,辅助继电器(M)、定时器(T)、计数器(C)、状态(S)软元件编号(其他牌子的PLC的编号方式有12进制等),应用指令的操作数中的数值指定和指令动作的指定。

16进制,应用指令的操作数中的数值指定和指令动作的指定,通常在变频器的通讯地址、命令码表示。

 C#上位机与三菱PLC的通信02--MC协议介绍_第15张图片

三菱PLC(可编程逻辑控制器)支持多种数据类型,其中包括:

  1. 位(bit):通常表示为 `BOOL` 类型,用于表示开关状态(ON或OFF)。
  2. 字节(Byte):等同于8位,从0到255。
  3. 字(Word):等同于16位,从0到65535。
  4. 双字(DoubleWord):等同于32位,从0到4294967295。
  5. 16位整数(Int):有符号数,范围为-32768至32767。
  6. 32位整数(Dint):同样是有符号数,范围为-2147483648至2147483647。
  7. 浮点数(Real):32位,可以表示小数。

此外,还有其他特殊类型的变量,如:

  • 定时器(Timer):用于计时功能。
  • 累计定时器(Retentive Timer):用于记录周期性事件的时间间隔。
  • 计数器(Counter):用于递增或递减数值。
  • 长计数器(Long Counter):用于长时间计数的应用。
  • 指针(Pointer):指向内存中某个地址的位置。

这些数据类型可以根据需要进行组合和使用,以满足不同的编程需求,了解这些对于上位机软件开发很重要。

打字不易,截图不易,代码不易,准备不易,原创不易,多多点赞收藏,江湖有你,共同致富。

C#上位机与三菱PLC的通信02--MC协议介绍_第16张图片

 

你可能感兴趣的:(C#上位机开发笔记,MC协议,三菱PLC,三菱A-1E,三菱Qna-3E,三菱软元件,PLC数据类型)