【案例】串口调试助手与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 指令(初始化从站)各引脚填写数据类型如下:
MBUS_SLAVE 指令各引脚填写如下:
1. 概念:使能端(EN):给EN使能接通MBUS_SLAVE 指令
填写:这里填写SM0.0。
2. 概念:完成位(Done):MBUS_INIT 指令完成时,“完成”(Done) 输出接通。
填写:这里填写M0.1
3. 概念:错误位Error:Error 输出字节包含指令的执行结果。仅当“完成”(Done) 接通时,该输出才有效。如果“完成”(Done) 关闭,则错误参数不会改变,当通信有错误时,错误位Error会提示错误代码,查看相应的代码可以查找对应的错误并解决。
填写:这里填写MB5。
MBUS_SLAVE 指令各引脚填写数据类型如下:
第四步:(通过第三步的填写,完成如下图)
第五步:(下载程序并监视)
第一步:(把RS 485 9针串口接头插入到PLC上)
第二步:(这是USB转232再转485接线板,我们把485接线板对应3正8负两个引脚用两个导线连接起来。)
第三步:(把USB接口插入电脑USB端,当成功插入电脑后驱动会自动安装)
第一步:(打开串口调试软件)
第二步:(设置串口调试助手参数,参考MBUS_INIT 指令(初始化从站)各引脚参数来填写)
1. 端口号:是你USB转RS485通信电缆的驱动,如果在电脑上正确安装驱动以后,会在计算机或者此电脑属性—设备管理器查看对应的COM端口。
比如我的端口号COM13,所以在串口调试助手填写端口号的时候选择COM13,这是根据你电脑COM端分配,没有固定端口号。
2. 波特率:9600
3. 数据位:8个位
4. 效验位:无效验(NONE)
5. 停止位:2个位。
6. 设备地址:选择03。
7. 寄存器地址:00 00,从VW0开始。
8. 寄存器数:00 03 读取3个地址。
9. 03是读寄存器。
第三步:(调试串口接收)
PLC从站:用状态图表给VW0地址写入一个数值,比如随便写入一个156。
串口调试助手主站:选择03读寄存器功能。
点击软件单次读取,这时看图中红色方框里显示十进制156、16进制9C,和PLC写入数值一样,代表写入通讯成功。
第四步:(调试串口发送)
串口调试助手:选择10写寄存器功能。
在图中红色方框内写入数值568,再次点击单次发送。
PLC从站:从图中可以看到VW0显示数值568,代表写入通信成功。
以上知识点大家都理解并且掌握了嘛?如果你还百思不得其解的?可以在上述文章找答案!
来源:PLC发烧友,作者:徐陈爽