电工学习网

 找回密码
 立即注册

MODBUS通讯小数点的故事

2015-10-19 10:17| 编辑:电工学习网| 查看: 11268| 评论: 0|原作者: sp321|来自: 西门子工程师故事

           这是个值得脸红的事情,但是教训是深刻的。
           做一个系统,通过MODBUS通讯5个站点的状态,每个站点的状态值相加之和小于75需要进行报警,很简单的程序啊。
       选型,硬件配置,软件编写。因为阀值是一个实数,为了让程序好看点,尽量少占用内部寄存器,就用语句表编程了。第一个地雷已经埋好,已经埋好,已经埋好,重要的事情说三遍。程序编好,总要模拟器运行下,通讯一般不会出问题,那就直接模拟比较这个阶段的程序了。第二个地雷已经埋好,已经埋好,已经埋好,重要的事情说三遍。运行没问题。好了,完活。
        其他没就再管。等待现场调试,等待了五六个月,都快把这个项目给忘了。直到领导同志让去现场服务,才又想起这个事情。
       到现场,检查,上电,运行,都没问题。其他功能都调试完毕,准备收拾完活了,突然想起那个阀值报警没有做,于是模拟做阀值报警,一做阀值报警,问题来了:根本出不来!监控程序,站点通讯正常,返回值正常,站点状态值相加之和正常,比较之后,不正常。是的不正常了。什么鬼?
        难道是数据格式问题?将相加之和再转换成实数格式和阀值比较,还是不正常。什么鬼?
       语句表行不通,那么换成梯形图吧。逐条更换,梯形图做数字运算然后在转换为实数这个过程的麻烦程度你懂得。做完之后再比较,没问题。是的,是没问题。那么问题来了,到底是哪里的问题?再返回去检查,突然发现一个不顺眼的地方,这个阀值是75,当时为方便起见,直接写75在比较程序里面了。用实数比较一个实数和75,结果能对么?赶紧将75改成实数形式。保存,编译,下载,运行,问题解决了。
        哎,汗颜无比啊。怎么能将实数和整形默认这样的低级错误犯到实际应用中?
       总结整个错误的过程,第一个错误是在使用语句表编程的过程中,数据格式报错不像梯形图编程那么严苛,所以忽视了。第二个错误是在模拟运行的过程中没有认真对待,没有从源头进行模拟,为了图一时的便利而造成了大的错误。
       做控制不容易,在校的错误都会在现场被放大,在咱们看来是一个个的控制点,到了现场都是和安全息息相关的,所以,还是要从每个细节抓起,做程序的时候,多做思考,多加保护,多模拟且模拟要到位。希望以后不要再犯这种低级错误了。

看过《MODBUS通讯小数点的故事》的人还看了以下文章:

发表评论

最新评论

  • 电表怎么看度数
  • 插座烧毁原因_插座烧后还可以继续使用吗?
  • 注册电气工程师考试挂靠,到底富了谁?
  • 电工证可以“挂靠“吗
  • 电工证怎么考?如何自考电工证
  • 电工证种类和图片大全
热门资讯

电工学习网 ( )

GMT+8, 2021-12-6 20:46

Powered by © 2011-2021 www.diangon.com 版权所有 免责声明 不良信息举报

技术驱动未来! 电工学习网—专业电工基础知识电工技术学习网站。

栏目导航: 工控家园 | 三菱plc | 西门子plc | 欧姆龙plc | plc视频教程

返回顶部