回复:应用探讨——S7-200 PLC通信常遇到的问题

Automann

  • 帖子

    6168
  • 精华

    138
  • 被关注

    309

论坛等级:至圣

注册时间:2004-12-23

普通 普通 如何晋级?

发布于 2011-05-13 09:50:13

53楼

用串口通信调试软件测试S7-200的modbus从站功能
使用串口通信调试软件,可以用计算机模拟串口设备,来调试串口通信。现在虽然有一些串口通信调试软件,但是有的软件是专门针对某种通信协议设计的,功能过于单一;有的生成计算机的发送帧不够方便灵活和直观。使用PLC的通信协议时经常会遇到不同数制的转换,校验码的计算也是必不可少的。如果这些都用手工来完成,或者用编程来实现,不仅工作量大,也容易出错。
针对PLC常用通信协议的帧格式和常见的校验方式,结合通信调试中的体会,我指导研究生开发了一个能够方便灵活地生成与PLC通信的各种格式的帧,又能直观地显示和保存通信记录的软件(见附件)。该软件可以用于PLC和其他设备(例如变频器)的串口通信调试,有以下功能:
(1) 可以用3种数据格式输入要发送的帧和显示收、发的帧,各数据格式可以相互转换。
(2) 可以计算常用的校验码(异或、求和、CRC和LRC),生成PLC通信中常用的多种协议格式的帧,适用范围广。
(3) 具有记忆功能,能保存上次退出时的工作状态(包括通信记录),便于继续调试。
(4) 能按时间间隔划分和显示接收到的帧,间隔时间可以修改。
下图是PLC串口通信调试软件的界面。


可用菜单命令打开/关闭串口、设置计算机的通信接口的参数,选择单次发送或定时发送,设置定时发送的间隔时间。
可以选择用字符串、十进制字节或十六进制字节这3种数据格式输入发送帧。通过改变数据格式可以将输入的发送帧转换为其他数据格式。
点击“计算校验码”按钮,在出现的对话框的“校验内容”窗口中,将自动显示出“发送帧”文本框中的数据或字符串对应的十六进制数。


点击某一校验方式按钮,在它右边的文本框内便可以得到对应的校验码。CRC(循环冗余校验)用于生成modbus协议的RTU模式的校验码。modbus的ASCII模式的校验内容逐字节求和后,和的低字节的补码为LRC(纵向冗余校验)码。
可以选择三种不同的数据格式查看收发的数据。字符串用“(S)”标识,十六进制数用“(H)”标识,十进制数无标识。可以用“清空”按钮清除通信记录。
假设用modbus的功能3读取1号站中从VW20开始的两个字(VW20和VW22),不包括CRC的十六进制数请求帧为01 03 00 0A 00 02。
生成请求帧的步骤如下:
1) 在“发送帧”文本框内输入用空格分隔的十六进制字节串“1 3 0 A 0 2”。
2) 在“计算校验码”对话框中点击“CRC”按钮,生成十六进制CRC校验字“9E4”。
3) 在“发送帧”文本框中将CRC校验字添加到发送帧的末尾(低字节在前)。这样就生成了完整的请求帧“1 3 0 A 0 2 E4 9”。点击“发送”按钮发送命令帧。
假设VW20和VW22的值分别为十六进制1234和ABCD,接收到的响应帧为十六进制数“1 3 4 12 34 AB CD 0 20”。第3个字节“4”是接收到的数据字节个数,最后两个字节是CRC校验字。

点击此处查看附件
追求完美
评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-200

共有33290条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

快扫描右侧二维码晒一晒吧!

再发帖或跟帖交流2条,就能晋升VIP啦!开启更多专属权限!

  • 分享

  • 只看
    楼主

top
X 图片
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。