沈盛阳,徐 凯,唐 坚
(扬力集团股份有限公司,江苏 扬州 225000)
当前的冲压现场,智能化仪表的应用十分广泛,现场管理的上位机往往需要读取这些仪表的实时数据,以便进一步的监控,很多智能仪表由于成本的因素,更多的选择开放程度高的串行通信。西门子的S7-1500PLC由于其强大的运算控制能力,成为冲压设备电气控制的首选,那么研究二者之间的串行通信就显得很有必要。
TIA博途软件是西门子公司近期发布的一款全新的集成自动化软件,将其全部自动化组态设计工具完美地整合在一个开发环境之中,提供了一个统一的工程开发平台。TIA博途软件包含STEP7、WinCC、Startdrive和SCOUT四个组件,本文主要介绍STEP7的运用。需要注意的是,在安装TIA博途软件V14以上版本时,推荐使用Windows 7 64位操作系统。
串行通信主要用于连接电力表、扫描仪、阅读器等带有串行通信接口的设备,本文中涉及到的MODBUS RTU就属于串行通信的范畴。西门子的S7-1500 PLC的串行通信接口有RS-232、RS-422/485两种类型。RS-232接口的最大通讯距离为15m,为9针串行接口,且只能连接单个设备。RS-422/485的接口最大通信距离为1200m,为15针串行接口,可以连接多个设备。可在TIA博途软件中对RS-422/485串行接口的配置,选择该口作为RS-422接口或者RS-485接口使用。其中RS-422为4线全双工模式,RS-485为2线制半双工模式。
本文以S7-1500的CPU1511-1PN和CM PtP RS422/485 HF为例进行配置,具体型号见表1。
表1 硬件配置
硬件配置完毕后,按照图1所示接线,注意,15针连接头引脚4接从站端的低电平端子,引脚11接从站端的高电平端子。如果连接的电缆(双绞线)长度超过50m,则需要在接收端焊一个330Ω的终端电阻。
图1 硬件接线
在TIA博途软件的STEP7的组件中调用函数Modbus_Comm_Load,来初始化串口参数,程序如图2所示。具体的参数说明,REQ:出现上升沿时,进行端口初始化,将接口参数写入到模块中;PORT:通信模块的硬件标识符,安装组态完CM PtP RS422/485 HF模块后,便可在机架上设备组态的“硬件ID”找到端口值;BAUD:选择数据传输速率,本例中选择默认值(9600);PARITY: 选择奇偶校验,0—无,1—奇校验,2—偶校验,本例中选择默认值(0);FLOW_CTRL:选择流控制,本例中选择默认值(0);RTS_ON_DLY:RTS接通延迟选择,本例中选择默认值(0);RTS_OFF_DLY:RTS关断延迟选择,本例中选择默认值(0);RESP_TO:响应超时,本例中选择默认值(1000);MB_DB:对函数 Modbus_Master背景数据块的引用,用于将初始化的结果与MODBUS主站进行关联,参数为背景数据块中的静态变态MB_DB;DONE:如果上一个请求完成并没有错误,那么本例中的M3000.0输出为高电平“1”,并保持一个周期。ERROR:如果上一个请求出错,那么本例中的M3000.1输出为高电平“1”,并保持一个周期。STATUS:错误代码,如果有错误存储在本例中的MW4000。最后,需要在在该数据背景块的静态变量中,将MODE参数设为4,表示使用半双工(RS-485)二线制模式。
接着,继续调用函数Modbus_Master,读取从站的数据,如图3所示。具体参数说明,REQ:发送请求,该参数为高电平信号“1”时,启动该模块,这里要注意,因为RS-485为半双工机制,如果读取多个从站参数时,应该编写一段轮询程序,轮流启动函数Modbus_Master,这样不会有冲突;MB_ADDR:读取从站的地址,本例中设定为2;MODE:0—读取,1—写入,本例只读取从站的参数,故设定为0;DATA_ADDR:从站保持寄存器的首地址,根据西门子MODBUS RTU通讯模式对应的功能码及地址,这里设为40001;DATA_LEN:从站保持寄存器的数据长度,因为本例需要读取6个字。这里就设定为6;DA-TA_PTR:指向数据缓冲区的指针,该缓冲区用于存储MODBUS从站读取的数据,本例将地址为2的电子凸轮40001-40006数据区域读出,存放在PLC的DB15.DBW30-DB15.DBW35中。其余参数的含义与上文函数Modbus_Comm_Load的一致,就不再赘述。
图2 主站MODBUS通信模块参数初始化
图3 主站通信程序
将编译好的程序下载到PLC后,监控相应的数据块,就会看到我们需要的从站数据已经读取到PLC上。
本文所述的西门子S7-1500串行通信的应用对压机的智能制造有很大的提升,不仅能提高生产效率,也能满足客户数据采集的要求,集合MES系统,进一步夯实了“智能化、无人化”车间的基础。