故事作者:Sykblue

最近创作

看看TA的故事

MODBUS通信之记一次错误导致造成的瞎忙活

已锁定

Sykblue

  • 帖子

    530
  • 精华

    2
  • 被关注

    54

论坛等级:侠圣

注册时间:2013-06-26

白金 白金 如何晋级?

MODBUS通信之记一次错误导致造成的瞎忙活

736

1

2021-10-27 15:24:11

这个事情最终不是程序原因,有些出人意料,大家猜猜看

最近正好遇到一个项目,准备由原来的模拟量信号控制改为通讯控制,看了一下手册说明,正好驱动控制器都支持MODBUS RTU的通讯协议。这样可以节省一个AQ02的通讯模块。

硬件组态如下:

1、S7-200 SMART 的PLC SR60一台;

2、需要控制的某品牌驱动模块1台,记为1

3、需要控制的另一品牌驱动模块1台,记为2

步骤如下:

1、查看1手册,发现其通讯设置参数,只能设置地址,其波特率、校验方式等都是固定的。如下:


可以看到其通讯格式为8-E-1,也就是数据位8,偶校验,停止位1。默认地址为240,我在参数设置项03将其地址改为1。

然后单独测试,通讯正常。

2、查看2手册其通讯可以设置较多类型,只有一种不能设置,这个不能设置项不与1设置相同,我就放心了,就开始将数据通信格式设置为与1相同,只将其地址设置为2。手册说明如下:

哪知将其设置完成,添加到轮询里面,其无论如何也通讯不上。我更改了通讯方式,改为8-N-1,也就是无校验,这次2能通讯上了,1通讯不上。这很奇怪啊,难道只能支持无校验方式的通讯吗?我又试了奇校验方式也是不行。如图





死活通讯不上,出现3超时错误,当改为无校验就可以。查了线缆,查了设置,来回折腾。最后想着,我这个被控驱动器中通讯改为奇校验试试,发现通讯上了。这我纳闷了,怎么奇校验到通讯上了,我再改回偶校验,将PLC中程序校验改为1,这次也通讯上了。我就明白原来是它搞反了。

但是这个驱动器按说在行业内也属于顶尖的,怎么这也会搞反,我将其语言改为英文,发现原来是翻译时搞错了。英文的EVEN翻译成奇校验,将Odd翻译为偶校验了。中文设置偶校验,如下:




MODBUS通信之记一次错误导致造成的瞎忙活 已锁定
编辑推荐: 关闭

请填写推广理由:

本版热门话题

网友专栏

共有3374条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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