- 作者:朱泰坪
- 发表时间:2021-07-11 09:21
- 来源:
WTGNet-MP
安川PLC采集网关上位机软件通讯和数据采集
安川PLC数据采集网关主要为工业设备联网项目提供硬件支持,帮助上层终端通过以太网的方式采集底层工业设备(主要为PLC,但不局限于PLC的设备)的数据,进而对这些数据进行统计和分析。
该安川PLC数据采集网关适用于安川MP系列(MP2300/MP2300S等)PLC。
用户使用标准组态软件可以通过MODBUS TCP协议采集设备数据。
2.1 KEPServerEX通讯
新建channel,选择Modbus Ethernet驱动,点击【下一步】按钮,其它参数默认直至channel建立完成;
新建device,在【Device model】处选择Modbus,点击【下一步】按钮;
在【Device ID】处输入协议转换网关的IP地址,格式为<IP地址>.设备站号,点击【下一步】按钮;
以下步骤默认即可,直至完成。
2.2 组态王(KingView)通讯
新建设备,选择【ModbusTCP】--【TCP】,点击【下一步】按钮;
任意设定一个设备名称,点击【下一步】按钮;
输入协议转换网关的地址,格式为【IP地址:端口号 设备站号/时间】,默认为192.168.1.188:502 1/50,点击【下一步】按钮;
以下步骤默认即可,直至完成。
2.3 力控(ForceControl)通讯
新建IO设备,这里选择MODBUS(TCP)驱动,在设备配置中的【设备地址】输入设备的站号,【通讯方式】选择TCP/IP网络,点击【下一步】按钮;
在【设备IP地址】处输入协议转换网关的IP地址,在【端口】处输入协议转换网关的端口号,默认为502,点击【下一步】按钮;
以下步骤默认即可,直至完成。
2.4 杰控(FameView)通讯
选择【设备通讯】下的【安装驱动】,这里选择MB_TCPIP驱动,然后点击【安装】按钮;
选择需要启动的驱动后,点击【确定】按钮;
新建【设备数据表】,【MB单元号】输入设备的站号,【端口号】输入502,在【设备IP地址】处输入协议转换网关的IP地址,然后设置好通讯数据后,点击【确认】按钮。
3.1 PLC内部寄存器地址与MODBUS地址对应表
Modbus地址表
▼
注释说明:
m代表字号,n代表位号,M区的字号为十进制数,位号为十六进制数;I区的字号和位号均为十六进制数,代入计算公式计算时,都需要先将字号和位号换算成十进制。
①:如MB100A,m=100,n=10(十六进制A换算成十进制为10),其对应的modbus地址为:M100A=000001+16*100+10=001611;
②:如IB100F,m=256(十六进制100换算成十进制为256),n=15(十六进制F换算成十进制为15),其对应的modbus地址为:I100F =100001+16*256+15=104112;
③:如IW2BE,m=702(十六进制2BE换算成十进制为702),其对应的modbus地址为:I2BE =300001+702=300703;
④:如MW1000,其对应的modbus地址为:M1000 =400001+1000=401001;
3.2 PLC内部寄存器地址与MODBUS地址自适应
当【通讯协议选择】设置为SIO_Extension时,可以选择自己定义PLC内部寄存器地址与MODBUS地址之间的映射关系:将【Modbus地址自由映射】开启后在【Modbus地址自由映射表】中进行设置。
计算公式如下:
线圈:I/O/M/SBmn = 000001+a*4000+(m-b)*16+n;
输入线圈:I/O/M/SBmn = 100001+a*4000+(m-b)*16+n;
保持寄存器:I/O/M/SWm = 400001+ a*5200+m-b;
输入寄存器:I/O/M/SWm = 300001+ a*5200+m-b;
说明:m代表字号,n代表位号,M区和S区的字号为十进制数,位号为十六进制数;I区和O区的字号和位号均为十六进制数。a代表序列号(上图绿色部分),b代表相应序列号填入的起始字号地址,a和b均为十进制数,代入计算公式计算时,都需要先将m、n、a、b换算成十进制数。
对于线圈和输入线圈:每个序列号段落设置了起始字号地址后,都会在此区间自动定义2000个位的地址区间;
对于保持寄存器和输入寄存器:每个序列号段落设置了起始字号地址后,都会在此区间自动定义5000个字的地址区间;
举例说明:
线圈:设置O42(plc地址为O2A(十六进制2A换算成十进制为42)),即定义了OB2A0 – OBA7F(2000个位)的区间,例如OB3CB的modbus地址为:此时m=60(十六进制3C换算成十进制为60),n=11(十六进制B换算成十进制为11),a=0,b=42,带入公式计算:OB3CB = 000001+0*4000+(60-42)*16+11=000300;
保持寄存器:设置S200,即定义了SW200 – SW5200(5000个字)的区间,例如SW1000的modbus地址为:此时m=1000,a=1,b=200,带入公式计算:SW1000 = 400001+1*5200+1000-200=406001;
3.3 ModScan32测试
打开软件,设置需要测试的数据,例如:读取MW1000开始的127个字,设置如下:
选择菜单栏【Connection】--Connect,在对话框中的【IP Address】处输入协议转换网关的IP地址,点击【OK】按钮;
测试正常的画面如下: