2024年6月11日发(作者:家恬然)
欧姆龙CP系列PLC以太网modbusTCP通讯
BCNet-CP模块内部集成ModbusTCP通讯服务器,因此ModbusTCP客户机,如支持
ModbusTCP的组态软件、OPC服务器、PLC以及实现ModbusTCP客户机的高级语言开发
的软件等,可以直接访问欧姆龙CP系列PLC的内部数据区,Modbus协议地址在BCNet内
部已经被默认映射到CP系列PLC的地址区,实现的功能号包括:FC1、FC2、FC3、FC5、
FC6、FC15和FC16。
ModbusTCP协议帧格式:
事务
处理
标识
符
0x0
事务
处理
标识
符
0x0 0x0 0x0 0x0 后面的字节
数
协议
标识
符
协议标
识符
长度字段(高
字节)
长度字段
(低字节)
从站地
址
功
能
号
数据地址
(高字
节)
数据地
址(低字
节)
指令
数(高
字节)
指令
数(低
字节)
1、地址映射表
说明:
Modbus从
站地址
000001~
025001~
033201~
041401~
056901~
061001~
065101~
400001~
406151~
406671~
407191~
408191~
412291~
417001~
450001~
CP系列PLC内部软元
件
CIO区:CIO0.0~
工作区:WR0.0~
保持区:HR0.0~
数据
类型
计算公式
CIOm.n = 000001+m*16+n ①
WRm.n = 025001+m*16+n ①
HRm.n = 033201+m*16+n ①
功能号
最大指
令数
位
辅助区:AR0.0~
定时器完成标志:TCF0~
计数器完成标志:CCF0~
任务标志:TK0~
CIO区:CIO0~
工作区:WR0~
保持区:HR0~
辅助区:AR0~
字
定时器:TIM0~
计数器:CNT0~
数据内存:DM0~
外部内存:EM0~
TIMm= 408191+m
CNTm= 412291+m
DMm = 417001+m
EMm = 450001+m
ARm.n = 041401+m*16+n ①
TCFm= 056901+m
CCFm = 061001+m
TKm = 065101+m
CIOm = 400001+m
WRm = 406151+m
HRm = 406671+m
ARm = 407191+m
FC1(读线圈)
FC5(写单个线圈)
FC15(写多个线圈)
FC1:512
FC5:1
FC3(读寄存器)
FC6(写单个寄存器)
FC16(写多个寄存器)
FC3:125
FC16:125
FC6:1
①、该项为对应存储区的位操作,例如CIO100.3,则m=100,n=3,计算公式为:000001+100*16+3=001604。
在Modbus的对应地址为0区的01604地址。
2、用ModScan32测试
解压产品光盘使用手册通讯测试软件下的modscan2_。
1. 运行ModScan32软件。
2. 选择菜单Connection/Connect,选择Remote TCP/IP Server,输入BCNet-CP的IP地址,
Service端口为502;点击[OK]按钮,如图1所示。
图1
3. 在子窗口“ModSca1”中设置Device ID为PLC的站地址(如1),功能号选择
03:HOLDING REGISTER,Address = 0001,Length = 100。
4. 子窗口数据区显示400001~400100的16进制数据,其对应于欧姆龙CP系列PLC的寄
存器CIO0到CIO100的数值,如图2所示。
图2
双击子窗口数据区的数据可以修改数值。
2024年6月11日发(作者:家恬然)
欧姆龙CP系列PLC以太网modbusTCP通讯
BCNet-CP模块内部集成ModbusTCP通讯服务器,因此ModbusTCP客户机,如支持
ModbusTCP的组态软件、OPC服务器、PLC以及实现ModbusTCP客户机的高级语言开发
的软件等,可以直接访问欧姆龙CP系列PLC的内部数据区,Modbus协议地址在BCNet内
部已经被默认映射到CP系列PLC的地址区,实现的功能号包括:FC1、FC2、FC3、FC5、
FC6、FC15和FC16。
ModbusTCP协议帧格式:
事务
处理
标识
符
0x0
事务
处理
标识
符
0x0 0x0 0x0 0x0 后面的字节
数
协议
标识
符
协议标
识符
长度字段(高
字节)
长度字段
(低字节)
从站地
址
功
能
号
数据地址
(高字
节)
数据地
址(低字
节)
指令
数(高
字节)
指令
数(低
字节)
1、地址映射表
说明:
Modbus从
站地址
000001~
025001~
033201~
041401~
056901~
061001~
065101~
400001~
406151~
406671~
407191~
408191~
412291~
417001~
450001~
CP系列PLC内部软元
件
CIO区:CIO0.0~
工作区:WR0.0~
保持区:HR0.0~
数据
类型
计算公式
CIOm.n = 000001+m*16+n ①
WRm.n = 025001+m*16+n ①
HRm.n = 033201+m*16+n ①
功能号
最大指
令数
位
辅助区:AR0.0~
定时器完成标志:TCF0~
计数器完成标志:CCF0~
任务标志:TK0~
CIO区:CIO0~
工作区:WR0~
保持区:HR0~
辅助区:AR0~
字
定时器:TIM0~
计数器:CNT0~
数据内存:DM0~
外部内存:EM0~
TIMm= 408191+m
CNTm= 412291+m
DMm = 417001+m
EMm = 450001+m
ARm.n = 041401+m*16+n ①
TCFm= 056901+m
CCFm = 061001+m
TKm = 065101+m
CIOm = 400001+m
WRm = 406151+m
HRm = 406671+m
ARm = 407191+m
FC1(读线圈)
FC5(写单个线圈)
FC15(写多个线圈)
FC1:512
FC5:1
FC3(读寄存器)
FC6(写单个寄存器)
FC16(写多个寄存器)
FC3:125
FC16:125
FC6:1
①、该项为对应存储区的位操作,例如CIO100.3,则m=100,n=3,计算公式为:000001+100*16+3=001604。
在Modbus的对应地址为0区的01604地址。
2、用ModScan32测试
解压产品光盘使用手册通讯测试软件下的modscan2_。
1. 运行ModScan32软件。
2. 选择菜单Connection/Connect,选择Remote TCP/IP Server,输入BCNet-CP的IP地址,
Service端口为502;点击[OK]按钮,如图1所示。
图1
3. 在子窗口“ModSca1”中设置Device ID为PLC的站地址(如1),功能号选择
03:HOLDING REGISTER,Address = 0001,Length = 100。
4. 子窗口数据区显示400001~400100的16进制数据,其对应于欧姆龙CP系列PLC的寄
存器CIO0到CIO100的数值,如图2所示。
图2
双击子窗口数据区的数据可以修改数值。