故事作者:sp321

最近创作

看看TA的故事

小数点的故事

已锁定

sp321

  • 帖子

    24
  • 精华

    0
  • 被关注

    15

论坛等级:游士

注册时间:2008-12-16

普通 普通 如何晋级?

小数点的故事

791

3

2015-10-18 19:31:57

           这是个值得脸红的事情,但是教训是深刻的。

           做一个系统,通过MODBUS通讯5个站点的状态,每个站点的状态值相加之和小于75需要进行报警,很简单的程序啊。

       选型,硬件配置,软件编写。因为阀值是一个实数,为了让程序好看点,尽量少占用内部寄存器,就用语句表编程了。第一个地雷已经埋好,已经埋好,已经埋好,重要的事情说三遍。程序编好,总要模拟器运行下,通讯一般不会出问题,那就直接模拟比较这个阶段的程序了。第二个地雷已经埋好,已经埋好,已经埋好,重要的事情说三遍。运行没问题。好了,完活。

        其他没就再管。等待现场调试,等待了五六个月,都快把这个项目给忘了。直到领导同志让去现场服务,才又想起这个事情。

       到现场,检查,上电,运行,都没问题。其他功能都调试完毕,准备收拾完活了,突然想起那个阀值报警没有做,于是模拟做阀值报警,一做阀值报警,问题来了:根本出不来!监控程序,站点通讯正常,返回值正常,站点状态值相加之和正常,比较之后,不正常。是的不正常了。什么鬼?

        难道是数据格式问题?将相加之和再转换成实数格式和阀值比较,还是不正常。什么鬼?

       语句表行不通,那么换成梯形图吧。逐条更换,梯形图做数字运算然后在转换为实数这个过程的麻烦程度你懂得。做完之后再比较,没问题。是的,是没问题。那么问题来了,到底是哪里的问题?再返回去检查,突然发现一个不顺眼的地方,这个阀值是75,当时为方便起见,直接写75在比较程序里面了。用实数比较一个实数和75,结果能对么?赶紧将75改成实数形式。保存,编译,下载,运行,问题解决了。

        哎,汗颜无比啊。怎么能将实数和整形默认这样的低级错误犯到实际应用中?

       总结整个错误的过程,第一个错误是在使用语句表编程的过程中,数据格式报错不像梯形图编程那么严苛,所以忽视了。第二个错误是在模拟运行的过程中没有认真对待,没有从源头进行模拟,为了图一时的便利而造成了大的错误。

       做控制不容易,在小的错误都会在现场被放大,在咱们看来是一个个的控制点,到了现场都是和安全息息相关的,所以,还是要从每个细节抓起,做程序的时候,多做思考,多加保护,多模拟且模拟要到位。希望以后不要再犯这种低级错误了。

小数点的故事 已锁定
编辑推荐: 关闭

请填写推广理由:

本版热门话题

网友专栏

共有3363条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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