恭喜,你发布的帖子
发布于 2026-01-24 13:57:39
14楼
不理解何解要中断。你这活不急啊。等10毫秒怎么啦?
你说说你原来怎么做?这样做有个什么问题?咱研究一下是不是中断就可以解决你这个问题。
选择中断的原因是等不及扫描周期一次一次慢慢地来。就要现在立即来。
不知道有没有朋友做过FCT方面的项目,我说的要求实际上是一个FCT项目里面的子要求。DI/O和以太网、RS485那些倒好做,模拟量这个是我驻场时间花最长的东西。
软件上的做法和4楼的YUKJ基本是一致的,取4mA的头和20mA的尾,拉一条Y=KX+B的直线,然后用12mA的信号进去测试,判断CPU内读数换算出来是否在±5‰的偏差内。
我做法我感觉挺low而且不规范的,来单位第一次做这种没啥经验,想一步试一步。
软件那边的他们把校准程序放在了VB40000那边去了,这个地址我本体是访问不到的,只能通过modbus通信上主站访问(打个比方你知道你家里有个房间,但你没权力或者没能力打开,必须请警察来才能开)
modbus主站就是一台SR30+AM06(两个AO来做4-20MA信号源),从站就是我们魔改的ST60(有三个RS485AB口,这个检测实际上也有点胡来,我后面有空说一下),流程是这样的。
从工人按HMI上按钮后,AO按AI0-AI4,AI1-AI5,AI2-AI6,AI3-AI7这样成组的顺序(用了两组AO)先给4mA信号,每组只给1s的输入时间,4mA给完后按上面的顺序倒着来给20mA,再给完后最后再按原来的顺序给一遍12mA,算一下偏差判断一下是否超差。
第一遍4mA信号输入得到的数据,先是GET/PUT以太网进到SR30的VB4000起始一串地址,然后MODBUS通信会先把VB4000那边的数据给到魔改的ST60里,20mA也是同理。
整个测试从开始到结束以太网通信与MODBUS通信(9600BAUD)都是不断的。
魔改里面我写了一部分子程序,只在有4mA和20mA信号进来的时候调用,做一个惯性滤波和均值滤波(30次算一次),算完就把得到的数据走以太网传到SR30里面。
结果不怎么好,偏差有点大。我过会把程序贴出来
请填写推广理由:
分享
只看
楼主