1.实现方案
采用ComeMeal-FX模块实现ModbusTCP通讯,用于MES、SCADA、DCS等上位机系统以太网通讯三菱FX系列PLC,ComeMeal-FX模块适用于三菱FX1S、FX1N、FX2N、FX3U、FX3G、FX3S系列PLC的以太网扩展;ComeMeal-FX模块采用三通设计,不占用PLC通讯口,不对原系统做任何硬件和软件修改,即可通过本模块网口对PLC进行数据监控、操作和PLC编程等,同时原系统串口触摸屏通过模块扩展通讯口继续和PLC进行通讯,非常方便构建生产管理系统;
支持ModbusTCP服务器,支持FC1、FC2、FC3、FC5、FC15、FC6、FC16,网关内部将Modbus数据区自动映射至FX数据区,无需PCL额外配置和编程操作;

2.ModbusTCP通讯
ComeMeal-FX模块内部集成ModbusTCP通讯服务器,因此ModbusTCP客户机,如支持ModbusTCP的组态软件、OPC服务器、PLC以及实现ModbusTCP客户机的高级语言开发的软件等,可以直接访问三菱FX系列PLC的内部数据区,Modbus协议地址在模块内部已经被默认映射到FX系列PLC的地址区,实现的功能号包括:FC1、FC2、FC3、FC5、FC6和FC16。
ModbusTCP协议帧格式:
|
事务处理标识符 |
事务处理标识符 |
协议标识符 |
协议标识符 |
长度字段(高字节) |
长度字段(低字节) |
从站地址 |
功能号 |
数据地址(高字节) |
数据地址(低字节) |
指令数(高字节) |
指令数(低字节) |
|
0x0 |
0x0 |
0x0 |
0x0 |
0x0 |
后面的字节数 |
2.1地址映射表
|
Modbus从站地址 |
FX系列PLC内部软元件 |
数据类型 |
计算公式 |
功能号 |
最大指令数 |
|
000001~ |
输出线圈:Y0~ |
位 |
Ym = 000001+DEC(m) ① |
FC1(读线圈) FC5(写单个线圈) FC15(写多个线圈) |
FC1:2000 FC5:1 FC15:32 |
|
005001~ |
特殊:M8000~ |
M8m = 005001+m ② | |||
|
006001~ |
定时器线圈:T0~ |
Tm = 006001+m | |||
|
007001~ |
计数器线圈:C0~ |
Cm = 007001+m | |||
|
010001~ |
线圈:M0~ |
Mm = 010001+m | |||
|
030001~ |
线圈:S0~ |
Sm = 030001+m | |||
|
100001~ |
输入:X0~ |
位 |
Xm = 100001+DEC(m) ③ |
FC2(读输入) |
2000 |
|
400001~ |
定时器:T0~ |
字 |
Tm = 400001+m |
FC3(读寄存器) FC16(写寄存器) FC6(写单一寄存器) |
FC3:125 FC16:125 FC6:1 |
|
401001~ |
计数器:C0~ |
Cm = 401001+m | |||
|
401201~ |
计数器:C200~ |
Cm=401201+(m-200)*2 ④ | |||
|
401301~ |
特殊:D8000~ |
D8m = 401301+m ⑤ | |||
|
402001~ |
资料暂存器:D0~ |
Dm = 402001+m | |||
|
420001~ |
文件寄存器:R0~ |
Rm=420001+m ⑥ |
说明:
- Y点采用八进制编码方式,将点数值转换成十进制后,计算Modbus地址,如Y47,47(八进制)换成39(十进制),对应地址是000001+39=000040;
②、其中m表示M线圈标识号去掉8000的剩余数,如M8212时m=212;
③、X点采用八进制编码方式,将点数值转换成十进制后,计算Modbus地址,如X110,110(八进制)换成72(十进制),对应地址是100001+72=100073;
④、C200之后的计算器当前值为32位,故映射需要两个Modbus空间,例如C210,其m=210,对应的Modbus地址为401201+(210-200)*2=401221;
⑤、其中m表示特殊功能寄存器D标识号去掉8000的剩余数,如M8120时m=120;
⑥、此R寄存器,仅当FX3U机型(存在R寄存器的PLC机型)时可用,注意Modubs地址映射成6位;
2.2用ModScan32测试
1、运行ModScan32软件。
2、选择菜单Connection/Connect,选择Remote TCP/IP Server,输入ComMeal-FX的IP地址,Service端口为502;点击[OK]按钮,如图1所示。
图1
3、在子窗口“ModSca1”中设置Device ID为PLC的站地址(如1),功能号选择03:HOLDING REGISTER,Address = 1301,Length = 100。
4、子窗口数据区显示401301~401400的16进制数据,其对应于三菱FX系列PLC的特殊寄存器D8000到D8100的数值,如图2所示。
图2
5、双击子窗口数据区的数据可以修改数值。
2.3 WinCC通过ModbusTCP驱动连接ComeMeal-FX
1、打开Wincc软件,新建一个项目,右击“变量管理”,选择“添加新的驱动连接”,在弹出的对话框中选择“Modbus TCPIP.chn”,点击“确定”。
2、右击“Modbus TCPIP/IP 单元#1”选择“新驱动程序的连接”,新建一个名称,点击“属性”,弹出属性的对话框,在“CPU类型”选择“984”,在“服务器”中填入ComeMeal-FX的IP地址,点击确定。
3、右击“变量名称”,新建变量,这里我们新建一个D0变量,对应地址的设定请点击“选择”,弹出对话框,“区域”中选择“4x保持寄存器”,“4x”中填入“402001”。


382

被折叠的 条评论
为什么被折叠?



