1 S7-200 SMART Modbus TCP客户端与服务器如何编程及通信过程-德赢Vwin官网 网
0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

S7-200 SMART Modbus TCP客户端与服务器如何编程及通信过程

机器人及PLC自动化应用 来源:机器人及PLC自动化应用 作者:机器人及PLC自动化 2022-03-15 09:02 次阅读

STEP7-Micro/WIN SMART 从V2.4 版本开始,软件中直接集成 Modbus TCP 库指令,无需单独安装或者购买。安装软件后,Modbus TCP 指令位于 STEP7-Micro/WIN SMART 项目树中“指令”文件夹的“库”文件夹中。如图1.Modbus TCP库指令所示。

指令分为客户端和服务器两种,目前指令版本为 V1.0。客户端指令会占用开放式用户通信资源主动连接,最多8个;服务器指令会占用开放式用户通信资源的被动连接资源,最多也是8个。

1a3cc6b2-9386-11ec-952b-dac502259ad0.jpg

图1.Modbus TCP库指令

实验环境及通信任务

下面以两台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-1AA10-0AA0

表2.通信任务

硬件 通信角色 IP地址 端口 读/写 数据区域
SR60 客户端 192.168.0.60 0 VB20-VB31
ST20 服务器 192.168.0.20 502 响应 VB0-VB11

客户端侧指令编程

1、系统块中设置客户端的IP地址,以确保IP地址设置无误。此步骤为可选,如果确定IP地址设置无误,可忽略此步骤。设置方法如图2.所示。

1a5998d2-9386-11ec-952b-dac502259ad0.jpg

图2.系统块设置IP地址

2、鼠标点击 MAIN 主程序的程序段1的编程区域,从库文件夹下找到 Modbus TCP 客户端指令 MBUS_CLIENT,鼠标双击,指令出现在程序段1中,操作如图3.所示。

1a7fd178-9386-11ec-952b-dac502259ad0.jpg

图3.添加客户端指令

3、填写客户端指令参数,如图4.所示。

1a983c7c-9386-11ec-952b-dac502259ad0.jpg

图4.填写客户端参数

程序块具体参数详细解释介绍见表3.

参数及类型 数据类型 说明
Req IN BOOL

=1:表示向服务器发送Modbus 请求

Connect IN BOOL

=1:尝试与分配的IP地址及端口号建立连接;

=0:尝试断开已经建立的连接,忽略Req的任何请求

IPAddr1-4 IN BYTE

填写 Modbus TCP 服务器的IP地址IPAddr1-4为高到低字节

IP_Port IN BYTE

填写Modbus TCP 服务器的端口号

RW IN BYTE

指定操作模式 =0:读;=1写

Addr IN DWORD

要进行读写的参数的 Modbus 起始地址

Count IN INT

要进行读写的参数数据长度;

数字量输入/输出Count=1表示1 bit,最大1920位

对于vwin 量输入和保持寄存器,最大 Count 值为 120 字。

DataPtr IN_OUT DWORD

数据寄存器地址指针,指向本地用于读/写操作的数据地址区域的首地址

Done OUT BOOL

TRUE:以下任一条件时为真:客户端已与服务器建立连接;客户端已与服务器断开连接;客户端已接收 Modbus 响应;发生错误

FALSE:客户端正忙于建立连接或等待来自服务器的 Modbus 响应。

Error OUT BOOL

出现错误,仅一个周期有效

4、鼠标选中程序块文件夹,单击右键,下拉菜单中选择库存储器,如图5.所示。

1aad3a1e-9386-11ec-952b-dac502259ad0.jpg

图5.点击库存储器

5、在库存储区分配对话框中手动输入存储区的起始地址。此实例为VB5000开始,以使指令库可以正常工作。确保库存储区与程序中其他已使用的地址不冲突。使用建议地址无法确定是否有地址重叠,所以推荐手动输入正确的库存储区首地址。如图6.所示。

1ad0ffd0-9386-11ec-952b-dac502259ad0.jpg

图6.库存储区地址分配

6、编译项目,下载程序。

通信测试结果

将M0.0置位为1,然后在状态图表中创建变量,VW20-VW30 共6个字,监视值如图7.所示。

1ae2e9b6-9386-11ec-952b-dac502259ad0.jpg

图7.读取服务器数据

关于Modbus地址与CPU中数据区域地址对应关系说明

S7-200 SMART 做 Modbus TCP 通信,可以支持的功能码及功能描述及所占用的地址区,如表4.所示。客户端会主动的发送请求,服务器响应。在通信指令填写参数中没有直接填写功能码,而是通过多个参数填写共同确定功能码的。

表4.功能码概况说明

功能码(十进制) 功能描述 RW Addr Count CPU地址
01

读数字量输出 位

0

00001-09999

1-1920 位

Q0.0-1151.7

02

读数字量输入 位

0

10001-19999

1-1920 位

I0.0-1151.7

03

读寄存器 字

0

40001-49999

400001-465535

1-120 字

V区

04

读模拟量输入 字

0

30001-39999

1-120 字

AIW0-AIW110

05

写数字量输出 单个位

1

00001-09999

1位

Q0.0-Q1151.7

06

写寄存器 单个字

1

40001-49999

400001-465535

1个字

V区

15

写数字量输出 多个位

1

00001-09999

1-1920 位

Q0.0-1151.7

16

写寄存器 多个字

1

40001-49999

400001-465535

1-120 字

V区

举例:

和Modbus TCP服务器交换数据参数支持功能码:03,在客户端指令中设置两个参数确定03功能码:

RW=0:确定读取数据,(筛选出可能会使用的功能码:01,02,03,04),

Addr:40001-49999/400001-465535,表示交换数据为寄存器类型的数据。

审核编辑:郭婷


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表德赢Vwin官网 网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 服务器
    +关注

    关注

    12

    文章

    9123

    浏览量

    85318
  • TCP
    TCP
    +关注

    关注

    8

    文章

    1353

    浏览量

    79054

原文标题:S7-200 SMART Modbus TCP 客户端指令

文章出处:【微信号:gh_a8b121171b08,微信公众号:机器人及PLC自动化应用】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    labview TCP客户端

    最近在做一个labview 客户端测试小程序,服务器采用MFC编写,客户端采用TCP侦听函数,通信可以连接,数据也正确,但是
    发表于 06-30 23:15

    labview-TCP客户端服务器

    labview-TCP客户端服务器一个服务器上位机,多个下位机客户端
    发表于 03-26 16:58

    4412开发板Qt网络编程-TCP实现服务器客户端

    网络编程TCP 和 UDP,TCP 编程需要用到俩个类:QTcpServer 和 QTcpSocket。1 TCP 实现
    发表于 04-28 15:33

    当WiFi信号变低时,服务器客户端之间的TCP通信丢失,如何使客户端重新连接?

    大家好, 当 WiFi 信号变低时,服务器客户端之间的 TCP 通信丢失,比如超过 -80dBm。一旦客户端断开连接,它就无法重新连接并正
    发表于 05-15 07:31

    winCC modbus TCP方式与S7-200 SMART PLC通信视频教程免费下载

    本文档的主要内容详细介绍的是winCC modbus TCP方式与S7-200 SMART PLC通信视频教程免费下载。
    发表于 12-07 08:00 101次下载
    winCC <b class='flag-5'>modbus</b> <b class='flag-5'>TCP</b>方式与<b class='flag-5'>S7-200</b> <b class='flag-5'>SMART</b> PLC<b class='flag-5'>通信</b>视频教程免费下载

    Linux下网络编程TCP并发服务器TCP客户端程序免费下载

    本文档的主要内容详细介绍的是Linux下网络编程TCP并发服务器TCP客户端程序免费下载
    发表于 01-08 15:12 9次下载
    Linux下网络<b class='flag-5'>编程</b><b class='flag-5'>TCP</b>并发<b class='flag-5'>服务器</b>和<b class='flag-5'>TCP</b><b class='flag-5'>客户端</b>程序免费下载

    S7-200 SMART与调试助手之间TCP通信

    TCP 通信为面向连接的通信,需要双方都调用指令以建立连接及交换数据。S7-200 SMARTS7
    的头像 发表于 03-14 10:08 5097次阅读

    Linux下TCP网络编程-创建服务器客户端

    这篇文章介绍在Linux下的socket编程,完成TCP服务器客户端的创建,实现数据通信
    的头像 发表于 08-14 09:26 2480次阅读
    Linux下<b class='flag-5'>TCP</b>网络<b class='flag-5'>编程</b>-创建<b class='flag-5'>服务器</b>与<b class='flag-5'>客户端</b>

    S7-200 SMART Modbus TCP服务器指令

    STEP7-Micro/WIN SMART 从V2.4 版本开始,软件中直接集成 Modbus TCP 库指令,无需单独安装或者购买。安装软件后,M
    的头像 发表于 11-25 17:23 3558次阅读

    S7-200 SMART如何下载程序?

    S7-200 SMART CPU 可以通过以太网电缆与安装有STEP7 Micro/WIN SMART编程设备进行
    的头像 发表于 03-29 09:31 4359次阅读

    S7-1200 CPU与S7-200 SMART S7通信指南

    服务器端则只需准备好通信的数据即可。S7-1200 系统预留了 8 个可组态的 S7 连接资源,考虑上 6 个动态连接资源,最多可组态 14 个客户
    的头像 发表于 04-19 15:14 3118次阅读

    S7-200 SMART变量倒序的编程

    S7-200 SMART变量倒序的编程
    的头像 发表于 05-06 10:27 1053次阅读
    <b class='flag-5'>S7-200</b> <b class='flag-5'>SMART</b>变量倒序的<b class='flag-5'>编程</b>

    S7-1200 CPU与S7-200 SMART S7通信教程

    S7-200 SMART CPU 固件版本 V2.0 及其以上,本体集成的 PROFINET 通信接口支持 S7 通信,可以通过向导或使用
    的头像 发表于 05-06 14:49 6497次阅读
    <b class='flag-5'>S7</b>-1200 CPU与<b class='flag-5'>S7-200</b> <b class='flag-5'>SMART</b> <b class='flag-5'>S7</b><b class='flag-5'>通信</b>教程

    S7-1500与S7-200 SMART的PROFINET IO通信配置

    S7-200 SMART V2.5 版本开始,S7-200 SMART 开始支持做 PROFINET IO 通信的智能设备。作为智能设备
    的头像 发表于 07-02 14:21 1w次阅读
    <b class='flag-5'>S7</b>-1500与<b class='flag-5'>S7-200</b> <b class='flag-5'>SMART</b>的PROFINET IO<b class='flag-5'>通信</b>配置

    服务器Server和客户端Client的区别

    例如在使用TCP通讯建立连接时采用客户端服务器模式,这种模式又常常被称为主从式架构,简称为C/S结构,属于一种网络通讯架构,将通讯的双方以客户端
    的头像 发表于 09-06 16:13 1364次阅读
    <b class='flag-5'>服务器</b>Server和<b class='flag-5'>客户端</b>Client的区别