ImageVerifierCode 换一换
格式:DOCX , 页数:33 ,大小:1.29MB ,
资源ID:5665271      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/5665271.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(200 Smart Modbus TCP通信详解.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

200 Smart Modbus TCP通信详解.docx

1、200 Smart Modbus TCP通信详解200 Smart Modbus TCP通信详解文章内容概述:Modbus TCP 通信概述Modbus TCP 客户端配置Modbus TCP 服务器配置Modbus TCP轮询例程S7-200 SMART CPU与调试助手进行Modbus TCP通信例程常见问题1.Modbus TCP 通信概述Modbus TCP 通信是通过工业以太网 TCP/IP 网络传输的 Modbus 通信。S7-200 SMART 采用客户端-服务器方法,Modbus 客户端设备通过该方法发起与 Modbus 服务器设备的 TCP/IP 连接。建立连接后,客户端向服

2、务器发出请求,服务器将响应客户端的请求。客户端可请求从服务器设备读取部分存储器,或将一定数量的数据写入服务器设备的存储器。如果请求有效,则服务器将响应该请求;如果请求无效,则会回复错误消息。S7-200 SMART 支持做 Modbus TCP 的客户端或者服务器,可以实现 PLC 之间通信,也可以实现与支持此通信协议的第三方设备通信。通信伙伴数量比较多的时候,可以使用交换机,扩展以太网接口,如图1.通信功能图1.通信功能STEP7-Micro/WIN SMART 从V2.4 版本开始,软件中直接集成 Modbus TCP 库指令。安装软件后,Modbus TCP 指令位于 STEP7-Mic

3、ro/WINSMART 项目树中“指令”文件夹的“库”文件夹中。如图2.Modbus TCP库指令所示。指令分为客户端和服务器两种,目前指令版本为 V1.0。图2.Modbus TCP库指令Modbus TCP 客户端:Modbus 客户端指令MBUS_CLIENT使用 CPU 的以下资源:占用主动连接资源。最多有8个主动连接资源连接多个服务器伙伴时,自动生成连接 ID。Modbus TCP 客户端使用以下程序实体:1 个子程序2849 个字节的程序空间V 存储器的 638 字节模块,用于指令符号Modbus TCP 服务器:Modbus 服务器指令 MBUS_SERVER 使用 CPU 的以

4、下资源占用被动连接资源。最多有8个被动连接资源连接多个客户端伙伴时,自动生成连接 ID。Modbus TCP 服务器使用下列程序实体:1 个子程序2969 个字节的程序空间V 存储器的 445 字节模块,用于指令符号指令库编程后,必须从 STEP 7-Micro/WIN SMART 的为使用的指令分配库存储区地址。2.Modbus TCP 客户端配置(1)S7-200 SMART Modbus TCP 客户端指令STEP7-Micro/WIN SMART 从V2.4 版本开始,软件中直接集成 Modbus TCP 库指令,无需单独安装或者购买。安装软件后,Modbus TCP 指令位于 STE

5、P7-Micro/WINSMART 项目树中“指令”文件夹的“库”文件夹中。如图1.Modbus TCP库指令所示。指令分为客户端和服务器两种,目前指令版本为 V1.0。客户端指令会占用开放式用户通信资源主动连接,最多8个;服务器指令会占用开放式用户通信资源的被动连接资源,最多也是8个。图1.Modbus TCP库指令(2)实验环境及通信任务下面以两台S7-200 SMART 之间进行Modbus TCP 通信为例,详细阐述客户端与服务器侧如何编程及通信的过程。具体的实验环境见表1.;通信任务见表2:表1.实验环境操作系统WIN7 SP1 专业版 64位编程软件STEP7-Micro/WIN

6、SMART V2.4版本硬件SR60:6ES7288-1SR60-0AA0 固件:V2.4 版本ST20:6ES7288-1ST20-0AA0 固件:V2.4版本交换机:CSM 127 6GK7 277-1AA10-0AA0表2.通信任务硬件通信角色IP地址端口号读/写数据区域SR60客户端192.168.0.600读VB20-VB31ST20服务器192.168.0.20502响应VB0-VB11(3)客户端侧指令编程a. 系统块中设置客户端的IP地址,以确保IP地址设置无误。此步骤为可选,如果确定IP地址设置无误,可忽略此步骤。设置方法如图2.所示。图2.系统块设置IP地址b. 鼠标点击

7、MAIN 主程序的程序段1的编程区域,从库文件夹下找到 Modbus TCP 客户端指令 MBUS_CLIENT,鼠标双击,指令出现在程序段1中,操作如图3.所示。图3.添加客户端指令c. 填写客户端指令参数,如图4.所示。图4.填写客户端参数程序块具体参数详细解释介绍见表3.参数及类型数据类型说明ReqINBOOL=1:表示向服务器发送Modbus 请求ConnectINBOOL=1:尝试与分配的IP地址及端口号建立连接;=0:尝试断开已经建立的连接,忽略Req的任何请求IPAddr1-4INBYTE填写 Modbus TCP 服务器的IP地址IPAddr1-4为高到低字节IP_PortIN

8、BYTE填写Modbus TCP 服务器的端口号RWINBYTE指定操作模式 =0:读;=1写AddrINDWORD要进行读写的参数的 Modbus 起始地址CountININT要进行读写的参数数据长度;数字量输入/输出Count=1表示1 bit,最大1920位对于模拟量输入和保持寄存器,最大 Count 值为 120 字。DataPtrIN_OUTDWORD数据寄存器地址指针,指向本地用于读/写操作的数据地址区域的首地址DoneOUTBOOLTRUE:以下任一条件时为真:客户端已与服务器建立连接;客户端已与服务器断开连接;客户端已接收 Modbus 响应;发生错误FALSE:客户端正忙于建

9、立连接或等待来自服务器的 Modbus 响应。ErrorOUTBOOL出现错误,仅一个周期有效d. 鼠标选中程序块文件夹,单击右键,下拉菜单中选择库存储器,如图5.所示。图5.点击库存储器e. 在库存储区分配对话框中手动输入存储区的起始地址。此实例为VB5000开始,以使指令库可以正常工作。确保库存储区与程序中其他已使用的地址不冲突。使用建议地址无法确定是否有地址重叠,所以推荐手动输入正确的库存储区首地址。如图6.所示。图6.库存储区地址分配f. 编译项目,下载程序。(4) 通信测试结果将M0.0置位为1,然后在状态图表中创建变量,VW20-VW30 共6个字,监视值如图7.所示。图7.读取服

10、务器数据(5)关于Modbus地址与CPU中数据区域地址对应关系说明S7-200 SMART 做 Modbus TCP 通信,可以支持的功能码及功能描述及所占用的地址区,如表4.所示。客户端会主动的发送请求,服务器响应。在通信指令填写参数中没有直接填写功能码,而是通过多个参数填写共同确定功能码的。表4.功能码概况说明功能码(十进制)功能描述RWAddrCountCPU地址01读数字量输出 位000001-099991-1920 位Q0.0-1151.702读数字量输入 位010001-199991-1920 位I0.0-1151.703读寄存器 字040001-49999400001-4655

11、351-120 字V区04读模拟量输入 字030001-399991-120 字AIW0-AIW11005写数字量输出 单个位100001-099991位Q0.0-Q1151.706写寄存器 单个字140001-49999400001-4655351个字V区15写数字量输出 多个位100001-099991-1920 位Q0.0-1151.716写寄存器 多个字140001-49999400001-4655351-120 字V区举例:和Modbus TCP服务器交换数据参数支持功能码:03,在客户端指令中设置两个参数确定03功能码:RW=0:确定读取数据,(筛选出可能会使用的功能码:01,02

12、,03,04),Addr:40001-49999/400001-465535,表示交换数据为寄存器类型的数据。3.Modbus TCP 服务器配置(1)S7-200 SMART Modbus TCP 服务器指令STEP7-Micro/WIN SMART 从V2.4 版本开始,软件中直接集成 Modbus TCP 库指令,无需单独安装或者购买。安装软件后,Modbus TCP 指令位于 STEP7-Micro/WINSMART 项目树中“指令”文件夹的“库”文件夹中。如图1.Modbus TCP库指令所示。指令分为客户端和服务器两种,目前指令版本为 V1.0。客户端指令会占用开放式用户通信资源主

13、动连接,最多8个;服务器指令会占用开放式用户通信资源的被动连接资源,最多也是8个。图1.Modbus TCP库指令(2)实验环境及通信任务下面以两台S7-200 SMART 之间进行Modbus TCP 通信为例,详细阐述客户端与服务器侧如何编程及通信的过程。具体的实验环境见表1.;通信任务见表2:表1.实验环境操作系统WIN7 SP1 专业版 64位编程软件STEP7-Micro/WIN SMART V2.4版本硬件SR60:6ES7288-1SR60-0AA0 固件:V2.4 版本ST20:6ES7288-1ST20-0AA0 固件:V2.4版本交换机:CSM 127 6GK7 277-1

14、AA10-0AA0表2.通信任务硬件通信角色IP地址端口号读/写数据区域SR60客户端192.168.0.600读VB20-VB31ST20服务器192.168.0.20502响应VB0-VB11(3) 服务器侧指令编程a. 系统块中设置服务器的IP地址,以确保IP地址设置无误。此步骤为可选,如果确定IP地址设置无误,可忽略此步骤。设置方法如图2.所示。图2.系统块设置IP地址b.鼠标点击 MAIN 主程序的程序段1的编程区域,从库文件夹下找到 Modbus TCP 服务器指令 MBUS_SERVER,鼠标双击,指令出现在程序段1中,操作如图3.所示。图3.添加服务器指令c. 填写服务器指令参

15、数,如图4.所示。图4.填写服务器参数参数及类型数据类型说明ConnectINBOOL=1:服务器接受来自客户端的请求;=0:服务器可以断开已经建立的连接IP_PortINWORD服务器本地端口号MaxIQINWORD对应数字量输入/输出点(对应Modbus 地址参数0xxxx或者1xxxx)可设置范围:0-256,=0表示禁用对输入和输出的所有读取和写入。建议将 MaxIQ 值设置为 256。MaxAIINWORD对应模拟量输入参数(对应Modbus 地址参数 3xxxx)可设置范围:0-56。= 0表示禁用对模拟量输入的读取。要允许访问所有 CPU 模拟量输入,MaxAI 的建议值如下:对

16、于 CPU CR40 和 CR60,为 0对于所有其它 CPU 型号,为 56MaxHoldINWORD用于 Modbus 地址 4xxxx 或 4yyyyy 的 V 存储器中的字保持寄存器数。HoldStartINDword指向 V 存储器中保持寄存器起始位置的指针DoneOUTBOOLTRUE:以下任一条件时为真:客户端已与服务器建立连接;客户端已与服务器断开连接;客户端已接收 Modbus 响应;发生错误FALSE:客户端正忙于建立连接或等待来自服务器的 Modbus 响应。ErrorOUTBOOL出现错误,仅一个周期有效d. 鼠标选中程序块文件夹,单击右键,下拉菜单中选择库存储器,如图

17、5.所示。图5.点击库存储器e. 在库存储区分配对话框中手动输入存储区的起始地址。此实例为VB5000开始,以使指令库可以正常工作。确保库存储区与程序中其他已使用的地址不冲突。使用建议地址无法确定是否有地址重叠,所以推荐手动输入正确的库存储区首地址。如图6.所示。图6.库存储区地址分配f. 编译项目,下载程序。通信测试结果由于客户端要读取服务器的数据,在状态图表中修改当前值,如图7.所示图7.状态图表赋值4.Modbus TCP轮询例程(1)S7-200 SMART多请求处理S7-200 SMART Modbus TCP 可支持多个连接,最多可达 PLC 允许的开放式用户通信连接的最大数(八个

18、主动(客户端)连接和八个被动(服务器)连接)。不可避免的会出现以下情况:a.S7-200 SMART作为服务器由多个客户端访问b.S7-200 SMART作为客户端访问多个服务器下面就这种多请求处理的情况作相关的介绍。S7-200 SMART作为服务器由多个客户端访问:S7-200 SMART CPU作为服务器由多个客户端访问时,需要S7-200 SMART CPU多次调用 Modbus TCP 服务器库指令,并且每个服务器需要配置不同的Port口,如图1所示 。图1.S7-200 SMART多服务器例程注意:对应的库存储器地址需要使用建议地址不能重复使用。S7-200 SMART的开放式以太

19、网通讯资源是8个主动资源8个被动资源。端口号必须在 1 到 49151 的范围内。建议端口号在 2000 到 5000。该例程使用 STEP 7-Micro/WIN SMART V2.4 编写,使用硬件是ST60:6ES7288-1ST60-0AA0 固件:V2.4 版本该例程 Modbus TCP 服务器,响应2个客户端请求,访问不同的V存储区(2)S7-200 SMART作为客户端访问多个服务器S7-200 SMART CPU作为客户端访问多个服务器,服务器连接参数必须具有不同的 IPAddr 或 IP_Port 输入参数。情景1:S7-200 SMART 作为客户端访问多个服务器:解决方

20、法:确保连接富余,可以建立多个不同的连接发送请求,调用MBUS_CLIENT,S7-200 SMART CPU内通过设置的不同的远程IP地址、端口号 尝试建立连接。该情景的相关步骤用户根据以上原则,自行编程即可。情景2:S7-200 SMART作为客户端,访问同一个服务器,需要进行多次读写操作:解决方法:借助于同一个连接,考虑客户端做轮询 ,远程IP地址、端口号一致,分时调用“MBUS_CLIENT”指令,具体参考下方的轮询通信例程。轮询原则:在任意时间,只能有一个客户机请求处于激活状态,在一个请求完成执行后,下一个请求再开始执行,循环处理。(3)Modbus TCP 客户端轮询例程本例程中使

21、用done位做轮询,相比于用定时器做轮询,不会因为定时触发时间设置的过小导致两个指令冲突,或者定时触发时间设置过大增加通信时间的问题。注意:a.该例程使用 STEP 7-Micro/WIN SMART V2.4 编写,使用硬件是ST60:6ES7288-1ST60-0AA0 固件:V2.4 版本,IP地址:192.168.0.121b.该例程仅访问一个服务器,两个MBUS_CLIENT指令轮询执行写和读,写入和读取服务器寄存器类型地址:40001-40002共2个字,将需要写入服务器的数据放在VB700-VB703区域中,从服务器中读取的数据存储在本地的VB704-VB707区域中。Modbu

22、s TCP 客户端轮询例程:为配合上方的客户端轮询程序,服务器的程序可参考下面的例程。注意:a.该例程使用 STEP 7-Micro/WIN SMART V2.4 编写,使用硬件是SR60:6ES7288-1SR60-0AA0 固件:V2.4 版本,IP地址:192.168.0.113b.该例程 Modbus TCP 服务器,响应客户端请求,将数据存储在VB0-VB3的区域中,等待客户端写入和读取。Modbus TCP 服务器轮询例程:5.S7-200 SMART 与调试助手之间 Modbus TCP 通信STEP7-Micro/WIN SMART 从V2.4 版本开始,软件中直接集成 Mod

23、bus TCP 库指令,无需单独安装。安装软件后,Modbus TCP 指令位于 STEP7-Micro/WINSMART 项目树中“指令”文件夹的“库”文件夹中。如图1.Modbus TCP库指令所示。指令分为客户端和服务器两种,目前指令版本为 V1.0。客户端指令会占用开放式用户通信资源主动连接,最多8个;服务器指令会占用开放式用户通信资源的被动连接资源,最多也是8个。图1.Modbus TCP库指令(1)硬件和软件需求及所完成的通信任务硬件:1PC (带以太网卡)(IP 地址 192.168.0.1 ;子网掩码 255.255.255.0)2S7-200 SMART CPU (固件版本V

24、2.5) ( IP 地址 192.168.0.20 ;子网掩码 255.255.255.0)3TP 以太网电缆软件:1STEP 7 Micro/WIN SMART ( 软件版本 V2.5 )2ModScan323Modbus Slave所完成的通信任务:1ModScan32 接收 6 个字节数据: - ( S7-200 SMART 侧做服务器响应 ) VW0VW102Modbus Slave 接收 6 个字节数据: 项目树指令树库Modbus TCP Server(v1.0),调用MBUS_SERVER,如图5、图6所示。图5. Modbus TCP Server指令库图6. MBUS_SER

25、VERb.鼠标选中程序块文件夹,单击右键,下拉菜单中选择库存储器,如图7所示。图7.点击库存储器c.在库存储区分配对话框中手动输入存储区的起始地址。此实例为VB5000开始,以使指令库可以正常工作。确保库存储区与程序中其他已使用的地址不冲突。使用建议地址无法确定是否有地址重叠,所以推荐手动输入正确的库存储区首地址。如图8所示。图8.库存储区地址分配d.编译项目,下载程序。通信结果如下:图9. 测试结果(3)Modbus Slave(S7 200 SMART 做客户端)a. 打开Modbus Slave软件b. 点击Setup-SlaveDefinition-设定Function”(本例程以保持

26、型寄存器为例)-Quantity为6-Display为Signed如图10所示,设置完成后点击OK图10.Slave Definitionc.点击Connection-Connect图11.建立连接 Connect选择 TCP/IP; 设置TCP/IP Port为502与cpu中设置的保持一致,勾选Ignore Unit ID。(4)S7-200 SMART侧编程a.打开STEP 7 Micro/WIN SMART项目树指令树库Modbus TCP Client(v1.4),调用MBUS_CLIENT,如图12所示。图12. MBUS_CLIENTb.鼠标选中程序块文件夹,单击右键,下拉菜单中

27、选择库存储器,如图13所示。图13.点击库存储器c.在库存储区分配对话框中手动输入存储区的起始地址。此实例为VB5000开始,以使指令库可以正常工作。确保库存储区与程序中其他已使用的地址不冲突。使用建议地址无法确定是否有地址重叠,所以推荐手动输入正确的库存储区首地址。如图14所示。图14.库存储区地址分配d.编译项目,下载程序。通信测试结果:在状态图表中创建变量,VW20-VW30 共6个字,赋值后,将M0.0置位为1,监视值如图15所示。图15.读取服务器数据6.常见问题(1)如何判断Modbus TCP连接是否建立?答:进行Modbus TCP通信,需要建立连接,S7-200 SMART

28、CPU作为Modbus TCP客户端时:通过Modbus TCP Client指令 MBUS_CLIENT 的符号表中的 mConnected 参数来判断,如图1.所示mConnected=1 表示已经建立连接,mConnected=0 表示尚未建立连接图1.mConnected判断连接状态S7-200 SMART CPU作为Modbus TCP服务器时:通过Modbus TCP Server指令 MBUS_SERVER 的符号表中的 mConnected 参数来判断,如图2.所示mConnected=1 表示已经建立连接,mConnected=0 表示尚未建立连接.图2.mConnected判断连接状态注意:当PLC内存在多个客户端或者多个服务器时,不建议参考该状态点。(2)如何查看错误代码?答:出现错误时,MBUS_CLIENT 指令输出参数Done 会为1,但是,Done在连接建立完成,连接断开,响应完成时都会出现置位为1的情况。出现错误时,还有Error字节会显现出错误代码,仅保留一个周期时间。综上所述,查看错误代码,可以按照图3.所示的方法进行。图3.查看错误代码(3)进行 Modbus TCP 通信寄存器类型数据,数据量大超过120个字如何处理?答:如果

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1