本文档适用于地心客工作室出品的所有西门子PLC上使用的Modbus RTU和Modbus TCP的版本在2.0及以上的正式驱动
QErr_val作为错误信息,指示了很多错误,如果出现以下错误,请按照解决方法实行.
注:在从站或者Server中,这个参数是STATUS,意义相同
以下所有提到的值都是10进制的,不要混淆!!
1,状态:QErr_val = 0
一切正常,恭喜你!
2,状态:QErr_val = 1
原因: 超时无响应。
解决方法: 一般这个错误出现在主站(Client)通讯中,可能是对方设备无响应,这个检查对方设备就可以了;也可能是因为对方设备响应时间比较长,这个在VB界面配置命令的时候,将超时时间设置的长一点就可以了,如下图所示。
在调试阶段,也有可能是 485的A线和B线接反了。
将A B线反一下就可以了,注意断电接线。
3,状态:QErr_val = 2
原因: 站号错误
解决方法: 此错误很少出现,出现此错误,请检查从站状况
4,状态:QErr_val = 3
原因: 回码命令错误
解决方法: 此错误很少出现,出现此错误,请检查从站状况
5,状态:QErr_val = 4 (modbus TCP协议注意后半段)
原因: CRC检验错误
在从站中,4号错误是表示主站询问的区域超限
解决方法: 此错误可能是以下情况引起的
1) 在调试阶段,可能是 485的A线和B线接反了。
将A B线反一下就可以了,注意断电接线。
2) 在后期运行阶段,可能是线路受到干扰,可能是从站设备出现故障,请排查并解决。
Modbus TCP协议中:
状态:QErr_val = 4
原因:访问从站超限,其实地址或者总的读取长度超限
解决方法:仔细研读从站的地址区域和要求,使用标准modbus测试工具先测试从站,得到可以读取的数据去后,修改读取命令
6,状态:QErr_val = 5
原因1: 从站中,数据DB块中的被访问区域超限
解决方法: 将从站的数据存储DB块的最后一个区域放大.
注意,前三个区域固定的,不能修改,否则程序会出现错误
原因2:在主站中,读取到的反馈数据小于正常长度,会报此错误。
7,状态:QErr_val = 9
原因: 这是由于参数CPULIN(在冗余CPU系统中包括CPULIN2)的设置不正确,这可能是因为你得到的授权并不适合这个CPU,或者因为你的授权DB中的内容不正确
解决方法:
1)请核实你的当前使用的CPU的序列号和当前使用的授权是一致的(通过授权EXCEL文件中的信息来核对),以排除授权使用不当的问题。
2)如果你没能一次性将授权信息写道DB块中,而存在修改的情况,那么请检查在线的DB块中的数据和离线数据是否一致。
检查方法:建立一个变量表文件,将授权文件中的前20个BYTE按字符形式罗列在表格中,然后在线监视,比对在线数据是否和离线数据一致,如下图所示。
如果出现不一致的情况,请将这个授权DB块删除,然后重建这个DB块,保证可以一次将授权信息正确写入即可。
8,状态:QErr_val = 10
原因: 这是由于参数BLKTYPE设置的不对
解决方法: 把参数BLKTYPE设置大写的’J’就可以了
9,状态:QErr_val = 11
原因: 这是由于参数LIN设置的不对
解决方法: 把参数LIN设置我们提供的正式授权中的LIN授权数字串,最大5位数的一串数字,可以在授权EXCEL文件中找到
10,状态:QErr_val = 12
原因: 这是由于参数STRT_SEQ设置的不对,导致程序无法启动
解决方法: 把参数STRT_SEQ设置为1就可以了,这个参数需要用到一个M位来置位,比如M0.1,通过以下方式让M0.1保持为1
11,状态:QErr_val = 13
此故障是由于从站反馈信息中,校验正确,站号正确,功能码正确,但是回复的数据长度错误引起的。此时,数据将不被记录,仅报警,只能从站端解决。
12,状态:QErr_val = 14
此故障表示,您当前获取的驱动版本号与配置软件的版本号不匹配,请与您的供应商联系,谢谢
13,状态:QErr_val = 15
在Modbus TCP forPN的驱动中,表示server有响应,但是因为无法满足client要求时,给出此错误。
13,状态:QErr_val = 20
在Modbus RTU forCM(STEP7)的驱动中,西门子底层驱动未能正常启动。
14, 如果以上还没能解决您的问题,请参考以下方法
请下载安装“向日葵”软件, 个人使用是免费的,然后联网后,与我联系,谢谢