浔之漫智控技术(上海)有限公司
西门子PLC模块 , CPU模块 , DP通讯电缆 , 6GK交换机
西门模块总代理|2023
发布时间:2023-10-26

 S7-1200 设计紧凑、组态灵活,TIA在库函数中嵌套了Modbus-RTU 和Modbus-TCP功能库,在做数据采集的项目中是非常好用的。

做过一个换热站设备运行监测的项目,需采集管网一次侧和二次侧的供水压力、温度以及ABB变频器的工作状态。现场各类变送器已经接到了原有的智能仪表上,因此采用1200plc通过MODBUS-RTU 与现场智能仪表和变频器通信是比较经济的方案,并且可通过MODBUS-TCP与远程上位机通信。

智能仪表及变频器作为从站,只需在设定中选择Modbus-RTU通信协议并且为设备分配不重复的站地址即可。1200 PLC作为主站必须配备RS485通信模块,其通信的基本原理是:首先程序开始运行时,调用一次Modbus库中的功能块MB_COMM_LOAD来组态RS485模块上的端口;其次调用库中的功能块MB_MASTER作为Modbus主站与设备进行通信。

1200PLC作为主站通信是由DATA_ADDR(从站中的起始Modbus地址)和MODE(读、写、诊断模式)参数一起确定实际Modbus消息中使用的功能代码。DATA_PTR(数据指针)指向要写入或读取的数据的CPU DB地址,该DB必须为“非仅符号访问”DB类型。在TIA V12以上平台中,将该DB属性中的“优化的块访问”选项取消。17.jpg

PLC主站发送带有站地址标识的数据来寻址不同的从站,同时不同的从站通过响应带有站地址标识的数据给主站,以完成整个通信过程。这种轮询通信,可以根据发送和接收完成的标志来完成,也可以以固定的时间间隔进行轮询,实际应用时需要考虑CPU的性能以及轮循Modbus子站时间。程序编好后先用MODBUS调试工具测试一下,正常后再开始接线。

在接线时遇到一个小插曲:PLC及变频器的485接线端子B为正,A为负,很多厂家仪表的485接线端子是A为正,B为负,一开始通信始终不正常,当查看仪表说明书时才发现。

项目中我使用的是Modbus-TCP通过PLC上PN接口与上位机进行通信,Modbus-TCP使用开放式用户通信连接作为Modbus通信路径。在S7-1200 PLC的库函数中嵌套了Modbus-TCP功能块库, 它包含了Server 和Client的库函数, 编程时可以直接调用该库函数可实现与上位机的Modbus-TCP通信。

在该系统应用中S7-1200 PLC作为 Modbus Tcp Server (服务器),调用 “MB_SERVER”指令处理Modbus-TCP客户机的连接请求、接收Modbus功能的请求并发送响应,设置连接ID、IP端口等参数,使用起来比较简单。

S7-1200 PLC作为网络的服务器端,上位机可以按需建立连接访问PLC的数据区,这样在上位机对多个换热站的PLC连接中不会占用太多的资源。前提是PLC必需要有固定的IP才行,如果是动态拨号连接上位机,PLC端就需要作为客户端,通过修改MODE管脚的值改变发送或接收状态,按照主机的请求来按需向主机发送数据或主动接收主机的改写数据就比较麻烦了。

这是我在MODBUS通信协议项目应用中的一点小体会,一些观点或许过于幼稚,望各位同行多我指正,仅以此文起到抛砖引玉的作用。

    32.jpg西门子PLC在运行时采用循环执行用户程序的方式,这种运行方式也称为扫描工作方式。
    下面是循环处理的各个阶段的任务:
    1) 操作系统启动循环时间监控。
    2) CPU将过程映像输出区的数据写到输出模块。
    3) CPU读取输入模块的输入状态,并存入过程映像输入区。
    4) CPU处理用户程序,执行用户程序中的指令。
    5) 在循环结束时,操作系统执行其他任务,例如下载和删除块等。
    6) CPU返回阶段,重新启动循环时间监控。
     有个网友提出这样一个问题:为什么不是像其他PLC那样,在本次扫描周期结束的时候将过程映像输出区的数据写到输出模块,而是在下一个扫描循环周期才写到输出模块?这样不是产生了一个扫描周期的延迟吗?
     我的回答如下:PLC的扫描工作方式是一种重复的循环过程,就像我们日常使用的时钟一样,23点59分59秒过了就是下的0点0分0秒。说起来进入了下,实际上只差一点点时间。因此在下一扫描周期的开始将数据输出到外设,与本周期结束时输出的效果基本上是一样的。这两种方法的输出时间相差不是一个扫描周期,基本上没什么差别。PLC 通过程序使一个普通按钮具有启动、停止的控制功能,这样不仅能 节约 PLC 的输入点数,而且控制更加方便。要实现这种功能有很多方法, 有采用上升沿获取指令实现、采用 PLS 和 S/R 指令实现、采用计数器实现 等。单键控制电动机启停控制要求如下: (1)当次按下控制按钮时,电动机启动并连续运转。 (2)当再次按下控制按钮时,电动机停止。 (3)如此往复循环。 三相异步电动机单键控制启停的主电路可以参照图 4.1。 根据三相异步电动机单键控制启停的运转控制的要求,如果采用 PLC 进行控制,

展开全文
优质商家推荐 拨打电话