解密以太网通讯S7-1200与S7-300400的CAN报文通信奇迹

  • 科研进展
  • 2024年12月21日
  • 1.创建项目,命名为"PLC_HMI" 在S7-300主站与多个S7-1200从站之间,通过工业以太网(IE)实现数据的精确传输(例如,在时间同步中)。为了确保数据传输的可靠性,主站会逐一与每个从站进行交换。任务A应该采用S7通信,而任务B则使用开放式TCP/IP(T通信)。 图01展示了两个任务的配置示例,其中S7-300作为连接两个S7-1200从站的中心。

解密以太网通讯S7-1200与S7-300400的CAN报文通信奇迹

1.创建项目,命名为"PLC_HMI"

在S7-300主站与多个S7-1200从站之间,通过工业以太网(IE)实现数据的精确传输(例如,在时间同步中)。为了确保数据传输的可靠性,主站会逐一与每个从站进行交换。任务A应该采用S7通信,而任务B则使用开放式TCP/IP(T通信)。

图01展示了两个任务的配置示例,其中S7-300作为连接两个S7-1200从站的中心。

S7-300紧凑型CPU315-2PN/DP利用STEP7V5.4+SP5+HF1编程环境来构建用户界面。相应地,S7-1200紧凑型CPU使用STEP7BasicV10.5SP2进行组态。

2.自动化解决方案

解决方案A:基于S7协议

对于具有被动服务器功能的S7-1200PLC,可以通过PUT和GET块在客户端,即由STEP七V5.4中的NetPro进行组态连接。在这里,每条到达服务器的连接都分配一个唯一标识符。在NetPro中,可根据所选用的CPU类型来设置最大数量限制;例如,CPU315-2PN/DP允许最多14个独立的网络资源。

注意事项:

值得一提的是,只有支持动态ID更改功能的是那些拥有PUT和GET块ID支持变更能力的心智级别3 CPU,如步进器300系列。而对于其他级别的心智级别4 CPU,如步进器400系列,每个通信块都需要一个固定的ID。

图02

主机和每台远程终端设备均配备了发送及接收单元(Send_DB和Receive_DB)。当接收到同步指令后,主机读取系统时间并将其以及用户数据通过PUT块发送给第一个远程终端,以便它们能完成基于synchronizing the system time of each remote terminal unit with the system time received from the master station, followed by sending user data from the master station to each remote terminal unit using PUT blocks.

然后,该主机使用GET通信块获取来自第一个远程终端单位(user data)并将其存储在相关位置内 Receive_DB 数据区。这一过程对所有后续远程终端单位重复执行。一旦完成了主机与最后一个远程终端单位之间数据交换之后,再次启动与第一台remote terminal unit 的数据交换。

解决方案B:T通讯技术

另一方面,对于提供了用于开放式TCP/IP通讯功能块-TCON、TSEND、TRCV、TDISCON-SIMATIC S7200系统而言,它们可以通过ISO-on-TCP协议实现面向消息操作原理,这对于SIMATIC系统间交流特别有用。此外,还可以利用‘开放式通讯向导’(OC向导)工具来配置这些连接,并且伙伴节点可以依据IP地址识别对方。此外,由OC向导管理的一个连接资源会生成相应的一份相关联的事务模块。在这个模板里,将包含伙伴节点IP地址信息。这种形式下的工业以太网通讯最大可能建立数目受限于所应用之CPU类型;例如,对于采用CPU 315 - 2 PN / DP 的设备,其理论上可同时维护8 个ISO-on-TCP 通信链路。但是实际操作中却能够跨越这8 个链接点连续地处理超过8 个不同合作伙伴之间数据流转过程,因为我们只需更新此事务模板中的IP 地址即可重新建立新的线路。

图03

在同样的基础上,在TCON 块下方,我们看到该master station 发出对第一个slave device 的TCP/IP 连接请求,然后等待确认回复。当存在任何同步活动时,该master station 会首先读取自己的当前系统时间并随着该时间及用户自定义信息一起发送至slave device 使用 TSEND 块发起这一行动。在 slave side 中,当它成功接受到来自masterstation 的日时钟信息后,它就能够根据这些信息来调整自身本地时钟。当slave device 接受到来自masterstation 用户自定义资料后,它就会使用 TSEND 块将这些资料返回给masterstation 在其 TRCV receive block 中捕获输入到的内容,并将它们保存在指定位置内 Receive_DB 数据区。一旦该全体操作完成,那么我们就开始再次尝试初始化新一次相同方式上的循环,从而保证整个网络保持持续运行状态。

猜你喜欢