西门子S7-200 Smart系列PLC和拧紧轴驱动器实现Modbus TCP以太网通信
一、系统概述:
拧紧轴由提供动力源的伺服电机、提供输出扭矩的减速机和用以检测扭矩之传感器组成,另外还需要外接控制器,用以控制、显示。其原理是利用伺服电机做为动力单元,连接减速机构,增大输出力矩,连接扭矩传感器用以检测力矩。扭矩传感器和伺服电机组成闭环控制,就可以精确的控制输出力矩等参数。本文所介绍之拧紧轴驱动器支持Modbus TCP以太网协议,我们使用西门子S7-200 Smart系列PLC和拧紧轴驱动器实现Modbus TCP以太网通信,西门子S7-200 Smart系列PLC可对拧紧轴目标扭矩进行相关操作。
二、通信连接:
1、西门子S7-200 Smart系列PLC内置以太网口通过网线连接至交换机LAN接口;
2、拧紧轴驱动器网口通过网线连接至交换机LAN接口。
三、西门子S7-200 Smart系列PLC内置以太网口通信参数:
1、通信协议:Modbus TCP Client
2、IP地址:192.168.1.162
3、端口号:3000
参数设置如下所示:
端口中有关服务器通信参数通过编程实现,详情见PLC编程。
四、拧紧轴驱动器网口通信参数:
1、通信协议:Modbus TCP Server
2、IP地址:192.168.1.75
3、端口号:502
其Modbus通信地址表如下所示:
我们这里对测量扭矩(寄存器地址15010)进行实时读操作。
五、相关功能块安装:
西门子S7-200 Smart相关Modbus TCP客户端、Modbus TCP服务器、Modbus RTU主站和Modbus RTU从站功能块需要提前安装,如下所示:
六、西门子S7-200 Smart系列PLC编程详解:
1、网络1:初始化复位各个标志位
2、网络2:连接建立后置位M1.0,然后开始执行读写操作:
3、网络3:连接断开后复位各个标志位:
4、网络4:调用MTC_LINK_0指令,可实现与服务器建立连接或者断开连接,各参数含义如下所示:
(1)EN:使能端,要求每个扫描周期都接通,所以一般使用SM0.0;
(2)EConnectionSet:建立TCP连接操作,这里我们使用M0.0来建立TCP连接;
(3)DConnectionSet:断开TCP连接操作,这里我们使用M0.1来断开TCP连接;
(4)IP01Addressset:服务器IP地址第1段,这里拧紧轴驱动器IP地址第1段为192;
(5)IP02Addressset:服务器IP地址第2段,这里拧紧轴驱动器IP地址第2段为168;
(6)IP03Addressset:服务器IP地址第3段,这里拧紧轴驱动器IP地址第3段为1;
(7)IP04Addressset:服务器IP地址第4段,这里拧紧轴驱动器IP地址第4段为75;
(8)RemoPortNumber:服务器端口号,这里拧紧轴驱动器端口号为502;
(9)LocaPortNumber:本地端口号,即就是PLC作为客户端时的端口号,这里设定为3000;
(10)TimeoutSetting:服务器超时时间设定,单位为毫秒,这里设定为10000毫秒。
(11)CompletionMark:完成标志位,当连接建立成功后,该标志位被置位;
(12)BusyLinOutMark:忙线标志位,连接断开或者未建立时,该标志位被置位;
(13)ErroCodeOutput:错误代码,该错误代码为参考开放式用户通信库指令错误代码,具体请参考STEP 7-Micro/WIN SMART在线帮助或者PLC系统手册相关篇章。
5、网络5:扫描周期,连接建立后M1.0被置位,延时10ms后置位M1.1,然后执行读取测量扭矩
6、网络6:调用MTC_TRAN_0指令,调用该指令可对拧紧轴驱动器执行读写操作,各参数如下所示:
(1)EN:使能端,同一时刻只能有一条MTC_TRAN_0指令使能,EN 输入参数必须一直接通直到 MTC_TRAN_0 指令CompletionMark位被置 1;
(2)CommandWSwitch:读写请求开关,每一条新的读写请求需要使用信号沿触发;
(3)SlaveAddressID:单元标识符,一般由客户端设定,特殊情况亦可根据服务器进行设定;
(4)ModbusFunction:Modbus功能码,支持01、02、03、04、05、06、15、16等8个功能码;
(5)RegisterAddres:寄存器地址,设定范围为0~65535,即就是16进制0000~FFFF;
(6)RegisterNumber:寄存器数量,
对于01和02功能码,设定范围为1~1920个位
对于03和04功能码,设定范围为1~120个字
对于05和06功能码,设定为1
对于15功能码,设定范围为1~1888个位
对于16功能码,设定范围为1~118个字
(7)RegisterBuffer:读写缓冲区,参数RegisterBuffer是间接地址指针,指向 CPU 中与读/写请求相关的数据的 V 存储器地址。
(8)CompletionMark:完成标志位,当MTC_TRAN_0指令执行完成后,该标志位被置位
(9)ErroCodeOutput:错误代码,主要错误代码如下所示:
这里我们利用MTC_TRAN_0指令对拧紧轴驱动器测量扭矩进行读取操作:
7、网络7:MTC_TRAN_0指令执行完成后,完成标志位被置位,完成一次操作,然后复位相关标志位,置位M1.0,为下一次操作做好准备:
七、Modbus TCP服务器(拧紧轴驱动器)的测试:
调试助手发送命令:12 34 00 00 00 06 01 04 3A A2 00 02
拧紧轴驱动器返回:12 34 00 00 00 07 01 04 04 42 DE 00 00
八、Modbus TCP客户端测试(西门子S7-200 Smart):
将服务器IP地址修改为电脑IP地址,电脑上使用Modbus Slave调试助手模拟拧紧轴进行测试
PLC发送命令:09 14 00 00 00 06 01 04 3A A2 00 02
调试助手返回:09 14 00 00 00 07 01 04 04 00 00 13 88
九、系统联调:
经过调试,西门子S7-200 Smart系列PLC和拧紧轴驱动器完美实现Modbus TCP以太网通信,PLC中可以对拧紧轴测量扭矩实现读取操作,程序编写调试成功,程序截图如下所示:
十、通信调试工具提供下载:
楼主最近还看过