西门子PLC-Modbus数据交互


1 需求应用

在实现自动化控制中,常常会有这样的需求:在一个复杂的自动化产线调试项目中,在PLC执行到某个动作节点时候,要和单个/多个Modbus-RTU设备进行数据交互,希望有个快速工具能够实现PLC给一个触发信号,PLC内部数据就能立马写入Modbus-RTU设备中;或者PLC给一个触发信号,Modbus-RTU设备的数据就马上读到PLC中了。Simatic_Modbus_TcpDX能快速实现这个功能。

2 应用架构

2.1 应用架构

在这里插入图片描述

2.2 架构说明

  • 串口服务器把RFID读头的RS485接口转成以太网口,并把SCAEdge与SIEMENS PLC接入同一个局域网络里面;
  • 按照实际SIEMENS PLC的触发需求,在SCAEdge内部配置好;
  • 启用Simatic_Modbus_TcpDX软件即可。

3 应用举例

3.1 准备测试设备

  • RFID读头2个
  • 记忆体2个(后续简称:“卡片、卡”)
  • SIEMENS S7-200 SMART PLC 1个(IP:192.168.1.50)
  • 2口的串口服务器(MOXA)1个
  • SCAEdge 1个
  • 5口交互机1个
  • 24V电源模块1个
  • 若干网线和导线

3.2场景描述

  • 两个RFID读头固定在2个工位上:RFID1,RFID2;

  • 每个读头对应一个卡片:卡1、卡2;

  • 在现场加工过程中,卡1、卡2的位置会交替变换;

    在这里插入图片描述

  • 数据交互模式如下表所述:

MOXA的IP RFID序号 功能





卡片
起始
地址
卡片长度
(1卡片长度

=
2个PLC字节)
PLC地址范围
192.168.1.48 RFID 1
(MOXA Port1)
读取RFID2写入数据 0.0 0.1 0.2 0 20 VB160-VB199
把PLC数据→卡片 1.0 1.1 1.2 0 10 VB100-VB119
清空卡片数据 2.0 2.1 2.2 0 20 VB200-VB239
RFID 2
(MOXA Port2)
读取RFID1写入数据 3.0 3.1 3.2 0 10 VB120-VB139
把PLC数据→卡片 4.0 4.1 4.2 10 10 VB140-VB159

3.3 测试设备参数

3.3.1 RFID参数配置:默认保持不变

  • Device Id:2
  • Baud:115200bps
  • Word:8
  • Parit:NONE
  • Stop:1

3.3.2 MOXA参数配置:修改默认参数

  • 修改电脑IP,MOXA的默认IP:192.168.127.254 子网掩码:255.255.255.0。浏览器输入MOXA IP地址进行配置,初始密码:moxa

  • 在“Network Settings",修改MOXA的默认IP,本手册选用IP:192.168.1.48

    在这里插入图片描述

  • 在“Serial Settings”,配置串口参数(根据RFID的基本参数)

    在这里插入图片描述

  • 在“Operating Settings”,配置MOXA工作模式“TCP Server Mode”。注:下图“Force transmit 建议设置成20ms”

    在这里插入图片描述

  • 保存退出,并重启。

3.3.3 SCAEdge参数配置

  • 修改SCAEdge的IP地址,改成:192.168.1.49

  • 把编写的配置文件“Simatic_Modbus_TcpDX_Project.xml”,下载到模块

    • 打开SCAEdge的配置软件——EdgePlant
    • 进入“边缘应用软件管理界面”,点击“安装”
    • 选择安装目录“/opt/scapeak/Simatic_Modbus_TcpDX/”
    • 找到本地PC上“Simatic_Modbus_TcpDX_Project.xml”所在位置
    • 勾选“可执行、可注册”,开始安装

    在这里插入图片描述

  • 把Simatic_Modbus_TcpDX工功能添加开机自启

    • 在“边缘应用软件管理——2.自动化控制”找到“Simatic_Modbus_TcpDX”软件名称
    • 鼠标右键点击“添加开机启动”;

    在这里插入图片描述

    • 点击下“载配置”

    在这里插入图片描述

    • 下载成功,重启Edge模块。

3.4 如何编写“Simatic_Modbus_TcpDX_Project.xml”文件

  • 新建一个TXT文本,重命名为“Simatic_Modbus_TcpDX_Project”,扩展名TXT改成xml

  • 本案中,“Simatic_Modbus_TcpDX_Project.xml”内容如下:

    <?xml version="1.0" encoding="UTF-8"?>
    <Simatic_Modbus_TcpDX>
    	<SimaticPLC Name="PLC50" IpAddr="192.168.1.50" DstTsap="" DBNo="1" Timeout="1000" Interval="10" Comment="SMART200" >
    		<ModbusSlave Name="48-1" TcpServerIpAddr="192.168.1.48" TcpServerPort="4001" ModbusAddr="2" Timeout="1000" Comment="rfid scaner2">
    			<Read Name="48-1R1" RequestBit="0.0" ResponseBit="0.1" ErrorBit="0.2" ModbusReg="holdreg" RegOffset="0" RegCount="20" SimaticAddr="160" />
    			<Write Name="48-1W1" RequestBit="1.0" ResponseBit="1.1" ErrorBit="1.2" ModbusReg="holdreg" RegOffset="0" RegCount="10" SimaticAddr="100" />
    			<Write Name="48-1W2" RequestBit="2.0" ResponseBit="2.1" ErrorBit="2.2" ModbusReg="holdreg" RegOffset="0" RegCount="20" SimaticAddr="200" />
    		</ModbusSlave>
    		<ModbusSlave Name="48-2" TcpServerIpAddr="192.168.1.48" TcpServerPort="4002" ModbusAddr="2" Timeout="1000" Comment="rfid scaner2">
    			<Read Name="48-2R1" RequestBit="3.0" ResponseBit="3.1" ErrorBit="3.2" ModbusReg="holdreg" RegOffset="0" RegCount="10" SimaticAddr="120" />
    			<Write Name="48-2W1" RequestBit="4.0" ResponseBit="4.1" ErrorBit="4.2" ModbusReg="holdreg" RegOffset="10" RegCount="10" SimaticAddr="140" />
    		</ModbusSlave>
    	</SimaticPLC>
    </Simatic_Modbus_TcpDX>
    
  • “Simatic_Modbus_TcpDX_Project.xml”文件说明(未说明部分为默认配置)

    • PLC参数配置
      	<SimaticPLC Name="PLC+IP地址的最后1位" IpAddr="PLC的IP地址" DstTsap="" DBNo="DB的块好(V区=1)" Timeout="1000" Interval="10" Comment="SMART200" >
    
    • 单个RFID读头的读写功能框架配置
    		<ModbusSlave Name="读头序号" TcpServerIpAddr="MOXA的IP地址" TcpServerPort="MOXA 的Port端口号" ModbusAddr="RFID的站地址" Timeout="1000" Comment="rfid scaner2">
                                      内部编写读写模式,参照下面2点
                						`RFID读头的读模式  
                                        `RFID读头的写模式  
      		</ModbusSlave>
    
    • RFID读头的读模式
    <!-- 读RFID操作定义,触发位(PLC置位请求读取数据),响应位(SCAEdge完成读取后置位1),错误位(SCAEdge读取失败置位1),读取的Modbus寄存器起始地址,读取寄存器个数,读取的数据存放到西门子PLC的起始地址(VB1001) -->
    			<Read Name="读头序号" RequestBit="触发位" ResponseBit="响应位" ErrorBit="错误位" ModbusReg="holdreg" RegOffset="卡片起始地址" RegCount="卡片长度" SimaticAddr="PLC起始地址" />
    
    • RFID读头的写模式
    <!-- 写RFID操作定义,触发位(PLC置位请求读取数据),响应位(SCAEdge完成读取后置位1),错误位(SCAEdge读取失败置位1),读取的Modbus寄存器起始地址,读取寄存器个数,读取的数据存放到西门子PLC的起始地址(VB1001) -->
    			<Write Name="读头序号" RequestBit="触发位" ResponseBit="响应位" ErrorBit="错误位" ModbusReg="holdreg" RegOffset="卡片起始地址" RegCount="卡片长度" SimaticAddr="PLC起始地址" />
    
  • 参照整体配置文件,编写“Simatic_Modbus_TcpDX_Project.xml”

3.5 在10 s内,获取所需的““Simatic_Modbus_TcpDX_Project.xml””

  • 根据案例需求,配置好“demo.xlsx”内容

    在这里插入图片描述

  • 可以问季工要xml文件生成工具,能够一键生成xml文件。

4 联系我们

拨打我们的24小时免费咨询热线:400-8544-418

发送电子邮件,咨询具体解决方案:[email protected]

工作时间的咨询电话:0510-8591-5808,0510-8591-5898

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
THE END
分享
二维码
< <上一篇
下一篇>>