在西门子PLC串口Modbus RTU通信的时候,想必大家基本上都要事先使用串口调试助手测试一下通信设置的相关参数,是否可以发送和接收,那么接下来,给大家详细分析一下串口调试助手与S7-200SMART PLC从站通信。
一、 准备工具
1. 西门子S7-200SMART PLC一台
2. 一根USB转485通信线
3. 一根网线
4. STEP 7-MicroWIN SMART编程软件,串口调试助手软件
二、 编写程序
第一步:
(在桌面打开STEP 7-MicroWIN SMART编程软件)
第二步:(从库指令当中调用Modbus RTU Slave从站指令)
(填写MBUS_INIT 指令(初始化从站)与MBUS_SLAVE 指令)
MBUS_INIT 指令(初始化从站)各引脚填写如下:
1. 概念:使能端(EN):
给EN使能接通MBUS_INIT 指令(初始化从站)
填写:
这里填写SM0.1。
2. 概念:模式(Mode):
输入的值用于选择通信协议:
输入值为 1 时,分配 Modbus 协议并启用该协议;输入值为 0 时,分配 PPI 协议并禁用 Modbus 协议。
填写:
这里必须填写数值1,因为要启用Modbus 协议。
3. 概念:
地址(Addr):从站站地址,范围1 至 247 之间数值。
填写:
这里填写3,从站站号是3。
4. 概念:波特率(Baud):
波特率可分为 :
1200、2400、4800、9600、19200、38400、57600 或 115200。
填写:
这里填写9600波特率。
5. 概念:奇偶校验(Parity):
应设置为与 Modbus 主站的奇偶验校相匹配。所有设置使用一个停止位。
接受的值如下:
0(无奇偶校验)、
1(奇校验)和 2(偶校验)。
填写:
这里填写0,无校验。
6. 概念:端口(Port):
设置物理通信端口(0 = CPU 中集成的 RS-485,1 = 可选信号板上的 RS-485 或 RS-232)。
填写:
这里我们填写0,使用CPU上自带的串口,这里要注意的是,如果使用扩展的信号板必须要填写1。
7. 概念:
延时(Delay):
通过使标准 Modbus 信息超时时间增加分配的毫秒数来延迟标准 Modbus 信息结束超时条件。在有线网络上运行时,该参数的典型值应为 0。如果使用具有纠错功能的调制解调器,则将延时设置为 50 至 100 ms 之间的值。如果使用扩频无线通信,则将延时设置为 10 至 100 ms 之间的值。“延时”(Delay) 值可以是 0 至 32767 ms。
填写:
这里填写0,没有延迟。
8. 概念:参数MaxIQ:
用于设置 Modbus 地址 0xxxx 和 1xxxx 可用的 I 和 Q 点数,取值范围是 0 至 256。
值为 0 时,将禁用所有对输入和输出的读写操作。
建议将 MaxIQ 值设置为 256。
填写:
这里填写256,填写最大值。
9. 概念:参数MaxAI:
用于设置 Modbus 地址 3xxxx 可用的字输入 (AI) 寄存器数,取值范围是 0 至 56。值为 0 时,将禁止读取模拟量输入。建议将 MaxAI 设置为以下值,以允许访问所有 CPU 模拟量输入:
0(用于 CPU CR20s、CR30s、CR40s 和 CR60s)
56(所有其它 CPU 型号)
填写:
这里填写56,所有CPU型号。
10. 概念:参数MaxHold:
用于设置 Modbus 地址 4xxxx 或 4yyyyy 可访问的 V 存储器中的字保持寄存器数。
例如,如果要允许 Modbus 主站访问 2000 个字节的 V 存储器,请将 MaxHold 的值设置为 1000 个字(保持寄存器)。
填写:
这里填写1000,可以使用2000个字节。
11. 概念参数HoldStart:
是 V 存储器中保持寄存器的起始地址。该值通常设置为 VB0,因此参数 HoldStart 设置为 &VB0(地址 VB0)。也可将其它 V 存储器地址指定为保持寄存器的起始地址,以便在项目中的其它位置使用 VB0。Modbus 主站可访问起始地址为 HoldStart,字数为 MaxHold 的 V 存储器。
填写:
这里填写&VB0,这里要注意的是一定要在地址前面加一个指针地址,&号。
MBUS_INIT 指令(初始化从站)各引脚填写数据类型如下:
1. 概念:使能端(EN):
给EN使能接通MBUS_SLAVE 指令
填写:
这里填写SM0.0。
2. 概念:
完成位(Done):MBUS_INIT 指令完成时,“完成”(Done) 输出接通。
填写:
这里填写M0.1
3. 概念:错误位Error:
Error 输出字节包含指令的执行结果。仅当“完成”(Done) 接通时,该输出才有效。如果“完成”(Done) 关闭,则错误参数不会改变,当通信有错误时,错误位Error会提示错误代码,查看相应的代码可以查找对应的错误并解决。
填写:
这里填写MB5。
MBUS_SLAVE 指令各引脚填写数据类型如下:
三、 USB转RS485通讯线连接
第一步:
(把RS 485 9针串口接头插入到PLC上)
(这是USB转232再转485接线板,我们把485接线板对应3正8负两个引脚用两个导线连接起来。)
(把USB接口插入电脑USB端,当成功插入电脑后驱动会自动安装)
第一步:
(打开串口调试软件)
(设置串口调试助手参数,参考MBUS_INIT 指令(初始化从站)各引脚参数来填写)
1. 端口号:
是你USB转RS485通信电缆的驱动,如果在电脑上正确安装驱动以后,会在计算机或者此电脑属性—设备管理器查看对应的COM端口。
比如我的端口号COM13,所以在串口调试助手填写端口号的时候选择COM13,这是根据你电脑COM端分配,没有固定端口号。
3. 数据位:8个位
4. 效验位:无效验(NONE)
5. 停止位:2个位。
6. 设备地址:选择03。
7. 寄存器地址:00 00,从VW0开始。
8. 寄存器数:00 03 读取3个地址。
9. 03是读寄存器。
第三步:
(调试串口接收)
PLC从站:
用状态图表给VW0地址写入一个数值,比如随便写入一个156。
点击软件单次读取,这时看图中红色方框里显示十进制156、16进制9C,和PLC写入数值一样,代表写入通讯成功。
(调试串口发送)
串口调试助手:选择10写寄存器功能。
从图中可以看到VW0显示数值568,代表写入通信成功。
以上知识点大家都理解并且掌握了嘛?如果你还百思不得其解的?可以在上述文章找答案!