这个事情最终不是程序原因,有些出人意料,大家猜猜看
最近正好遇到一个项目,准备由原来的模拟量信号控制改为通讯控制,看了一下手册说明,正好驱动控制器都支持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翻译为偶校验了。中文设置偶校验,如下:
来源:西门子工业技术论坛 |