6ES7215-1HF40-0XB0
客户端侧指令编程
1、系统块中设置客户端的IP地址,以确保IP地址设置无误。此步骤为可选,如果确定IP地址设置无误,可忽略此步骤。设置方法如图2.所示。
图2.系统块设置IP地址
2、鼠标点击 MAIN 主程序的程序段1的编程区域,从库文件夹下找到 Modbus TCP 客户端指令 MBUS_CLIENT,鼠标双击,指令出现在程序段1中,操作如图3.所示。
图3.添加客户端指令
3、填写客户端指令参数,如图4.所示。
图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 起始地址,本例中也即ZKA-4488-ETH寄存器地址 |
Count |
IN |
INT |
要进行读写的参数数据长度; 数字量输入/输出Count=1表示1 bit,最大1920位 对于模拟量输入和保持寄存器,最大 Count 值为 120 字。 本例中读取AI1~AI3模拟输入的读数,因为每个AI输入通道占用2个WORD寄存器地址,所以读取3个通道AI1~AI3就需要读取6个WORD寄存器 |
DataPtr |
IN_OUT |
DWORD |
数据寄存器地址指针,指向本地用于读/写操作的数据地址区域的首地址 |
Done |
OUT |
BOOL |
TRUE:以下任一条件时为真:客户端已与服务器建立连接;客户端已与服务器断开连接;客户端已接收 Modbus 响应;发生错误 FALSE:客户端正忙于建立连接或等待来自服务器的 Modbus 响应。 |
Error |
OUT |
BOOL |
出现错误,仅一个周期有效 |
4、鼠标选中程序块文件夹,单击右键,下拉菜单中选择库存储器,如图5.所示。
图5.点击库存储器
5、在库存储区分配对话框中手动输入存储区的起始地址。此实例为VB5000开始,以使指令库可以正常工作。确保库存储区与程序中其他已使用的地址不冲突。使用建议地址无法确定是否有地址重叠,所以推荐手动输入正确的库存储区首地址。如图6.所示。
图6.库存储区地址分配
6、编译项目,下载程序。
将M0.0置位为1,然后在状态图表中创建变量,VW20-VW30 共6个字,监视值如图7.所示。
图7.读取ZKA-4488-ETH的数据
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,表示交换数据为寄存器类型的数据。
6ES7215-1HF40-0XB0
一、 组网概述
本文以 ZKA-4488-ETH 为例介绍西门子PLC与深圳市综科智控科技开发有限公司的IO设备进行Modbus通讯的步骤设置。ZKA-4488-ETH 是 8 路数字量输入(DI),8 路数字量输出(DO),4路模拟量输入(AI,0/4-20mA),4 路模拟量输出设备(AO,0/4-20mA),以太网通信。
以 ZKA-4488-ETH 为例,出厂默认通讯参数如下:
ZK模块 IP 为:192.168.0.105
TCP 端口为:10001
(注意:我们模块出厂时默认端口为10001,客户也可以通过ZK模块的配置文件把ZK通讯端口改成modbus-tcp的默认端口502)
工作模式为:服务器模式
二、 S7-200 Modbus TCP通信
1 S7-200 Modbus TCP 通信简介
Modbus 是公开通信协议,详细的协议和规范,请访问Modbus 组织的网站:
Modbus TCP 是通过工业以太网 TCP/IP 网络传输的 Modbus 通信。S7-200 SMART 采用客户端-服务器方法,Modbus 客户端设备通过该方法发起与 Modbus 服务器设备的 TCP/IP 连接。
建立连接后,客户端向服务器发出请求,服务器将响应客户端的请求。客户端可请求从服务器设备读取部分存储器,或将一定数量的数据写入服务器设备的存储器。如果请求有效,则服务器将响应该请求;如果请求无效,则会回复错误消息。
S7-200 SMART 支持做 Modbus TCP 的客户端或者服务器,可以实现 PLC 之间通信,也可以实现与支持此通信协议的第三方设备通信。通信伙伴数量比较多的时候,可以使用交换机,扩展以太网接口。
2 Modbus TCP 指令库
STEP7-Micro/WIN SMART 从V2.4 版本开始,软件中直接集成 Modbus TCP 库指令。
安装软件后,Modbus TCP 指令位于STEP7-Micro/WIN SMART 项目树中“指令"文件夹的“库"文件夹中。如图2.Modbus TCP库指令所示。
指令分为客户端和服务器两种,目前指令版本为 V1.0。客户端指令会占用开放式用户通信资源主动连接,最多8个;服务器指令会占用开放式用户通信资源的被动连接资源,最多也是8个。
图2.Modbus TCP库指令
Modbus TCP 客户端:
Modbus 客户端指令MBUS_CLIENT使用 CPU 的以下资源:
占用主动连接资源。最多有8个主动连接资源
连接多个服务器伙伴时,自动生成连接 ID。
Modbus TCP 客户端使用以下程序实体:
1 个子程序
2849 个字节的程序空间
V 存储器的 638 字节模块,用于指令符号
Modbus TCP 服务器:
Modbus 服务器指令 MBUS_SERVER 使用 CPU 的以下资源
占用被动连接资源。最多有8个被动连接资源
连接多个客户端伙伴时,自动生成连接 ID。
Modbus TCP 服务器使用下列程序实体:
1 个子程序
2969 个字节的程序空间
V 存储器的 445 字节模块,用于指令符号
指令库编程后,必须从 STEP 7-Micro/WIN SMART 的为使用的指令分配库存储区地址。
下面以一台S7-200 SMART和一台ZKA-4488-ETH 之间进行Modbus TCP 通信为例,详细阐述客户端与服务器侧如何编程及通信的过程。具体的实验环境见表1.;通信任务见表2:
表1.实验环境
操作系统 |
WIN7 SP1 专业版 64位 |
编程软件 |
STEP7-Micro/WIN SMART V2.4版本 |
硬件 |
CPU SR60:6ES7288-1SR60-0AA0 固件:V2.4 版本 ZKA-4488-ETH:综科智控4AI+4AO+8DI+8DO以太网modbus-tcp通信 交换机:CSM 127 6GK7 277-1AA10-0AA0 |
表2.通信任务
硬件 |
通信角色 |
IP地址 |
端口号 |
读/写 |
数据区域 |
CPU SR60 |
客户端 |
192.168.0.60 |
0 |
读 |
VB20-VB31 |
- 上一篇: 6ES7215-1AF40-0XB0
- 下一篇: 6ES7214-1AF40-0XB0