设为首页
收藏本站
PLC技术网
开启辅助访问
切换到宽版
登录
注册哦
只需一步,快速开始
微信扫码登录
门户
Portal
论坛
BBS
导读
Guide
排行榜
Ranklist
搜索
搜索
本版
文章
帖子
用户
PLC论坛-全力打造可编程控制器专业技术论坛
»
论坛
›
工控技术交流区
›
『国外:三菱/西门子/欧姆龙/松下』
›
改造西门子S7-200 Smart之Modbus TCP客户端指令库及其应 ...
返回列表
发新帖
改造西门子S7-200 Smart之Modbus TCP客户端指令库及其应用
[复制链接]
77901
|
0
|
2024-8-22 08:27:25
|
显示全部楼层
|
阅读模式
一、前言:
实际应用当中,多数Modbus TCP服务器设备给出的均是寄存器实际地址,而非寄存器编号,且西门子Modbus TCP客户端指令库对于从站离散输入、离散输出和输入寄存器读写的寄存器起始地址和数量均达不到Modbus规定的最大化,使用起来有诸多不便,特此封装此库,方便自己使用!
二、系统概述:
拧紧轴由提供动力源的伺服电机、提供输出扭矩的减速机和用以检测扭矩之传感器组成,另外还需要外接控制器,用以控制、显示。其原理是利用伺服电机做为动力单元,连接减速机构,增大输出力矩,连接扭矩传感器用以检测力矩。扭矩传感器和伺服电机组成闭环控制,就可以精确的控制输出力矩等参数。本文所介绍之拧紧轴驱动器支持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~2000个位
对于03和04功能码,设定范围为1~125个字
对于05和06功能码,设定为1
对于15功能码,设定范围为1~1968个位
对于16功能码,设定范围为1~123个字
(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中可以对拧紧轴测量扭矩实现读取操作,程序编写调试成功,程序截图如下所示:
本帖子中包含更多资源
您需要
登录
才可以下载或查看,没有账号?
注册哦
x
回复
举报
返回列表
发新帖
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
注册哦
本版积分规则
发表回复
回帖后跳转到最后一页
worldhalt
回复楼主
返回列表
『国外:三菱/西门子/欧姆龙/松下』
『国产:台达/汇川/信捷产品交流区』