登录
首页 PLC论坛 德嘉工控
回帖 发帖
正文

主题:DCS系统只有ModbusTCP如何与西门子S7-300PLC通讯?

点击:1638 回复:0

Keyword:S7-300PLC、Profinet、ModbusTCP、S7-PN
一、简要概述
西门子PLC带有Profinet协议的,如S7-200SMART、S7-1200、S7-1500、S7-300PN等本身是支持Profinet协议通讯的,但是很多DCS系统或者一些智能设备通过ModbusTCP协议通讯的,其本身不支持Profinet协议。
特别是S7-300PN这种类型的CPU,要是想要通过ModbusTCP通讯的话,第一,编程工作是非常麻烦的,很多使用者都不想编程,第二,其ModbusTCP库文件是不公开的,想要用的话是收费的,所以很多使用者都不想使用此方式。
于是我们推出了这种协议转换器,这种转换器是将Profinet协议转换成ModbusTCP协议的,然后和一些DCS系统通过ModbusTCP方式进行通讯。
附件 S7-PN_ModbusTCP.jpg
附件 1.jpg
Modbus TCP功能码与西门子PLC数据的对应关系:
01功能码:读取线圈、05写单个线圈、15写多个线圈(0xxxx)
地址 [ 0, 1, 2, ..10 … ] 对应西门子PLC Q区: [Q0.0, Q0.1, Q0.2, .. Q1.2….]
02功能码:读取输入状态(1xxxx)
地址 [ 0, 1, 2, ..10… ] 对应西门子PLC I区: [I0.0, I0.1, I0.2, ..I1.2…..]
04功能码:功能取消
03功能码:读取保持寄存器、06写单个寄存器、16写多个寄存器(4xxxx)
  地址 [ 0, 1, 2, ..10… ] 对应: DB块中的 DBW0, DBW2, DBW4, ...DBW20….
或V区的 VW0,  VW2,  VW4, ... VW20…
注:如果对应的数据地址超出DB块的实际长度,将会出现全部或部分DB块数据不能被读写,例如:DB1的长度为100字节,用03功能码读取,起始地址为0,长度为52,
这就是要读取DB1从0开始的104个字节,它超过了实际DB1块数据长度,就会出现读数据失败,并不是超出地址的数据读不到,而是整个DB块的数据都读不到!切记!
二、参数设置
它有两个网口(LAN1和LAN3)。LAN1 用于连接西门子PLC;LAN3用于连接电脑或DCS、MIS、霍尼韦尔的FTE、艾默生的OHI等具有Modbus TCP协议的其它系统。
1、首先用电脑通过网线连接LAN1的网口(或经过交换机与LAN1连接),如果不知道转换器的实际IP地址(或忘记了),你可以使用后门IP地址(192.168.1.222)来进入转换器设置页面,但该地址并不是真实地址,只能用来查看或修改实际IP。
附件 2.jpg
转换器的IP地址(PLC侧)要与西门子PLC的IP地址处于同一段址中
附件 3.jpg
3、再次回到主菜单,用鼠标点击“PLC类型/块号及IP”,就进入了DB块设置页面,填入实际S7-300PLC的IP地址:192.168.1.30,DB块号填入00011,代表DB11
附件 4.jpg
4、如果想查看本产品的通讯状态,请回到主菜单,用鼠标点击“通讯检测故障诊断”
附件 5.jpg
5、连接Modbus TCP侧设置,用电脑通过网线连接LAN3的网口(或经过交换机与LAN3连接),如果不知道转换器的实际IP地址(或忘记了),你可以使用后门IP地址(192.168.1.222)来进入转换器设置页面,但该地址并不是真实地址,只能用来查看或修改实际IP。
附件 6.jpg
6、转换器的IP地址(ModbusTCP侧)设置
附件 7.jpg
7、使用Modbus Poll调试软件测试如下,可见通讯成功。
附件 8.jpg
最后修改:2020/12/25 16:51:40
20-12-25 16:48

工控新闻

更多新闻资讯