解答:
感觉是数据类型有问题。 把数据处理成工程量的实数表示,应该不会有太多跳动了。 零点显示5900~6460都不算什么,可以通过校准修正。
问题解决了,确实是数据类型的问题,在计算试中,我是用(AIWx–6400)的结果放到AC0后直接乘以总量程,再除以(3200—6400),那么当AIWX偶尔小于6400的时候,结果为负数,直接乘以总量程得出的结果就会非常大,所以超压,后来,我把(AIWx–6400)的结果进行整数到双整数的转化后,即使它的结果为负数,乘以总量程得出的结果也不会很大,这在大家眼里也许只是个常识性的东西,但它却困扰了我两天,见笑了,呵呵,下面是修改前后两段程序
ITD指令用于16位数据格式向32位数据格式的转变,掩盖了一些技术细节。ITD并不改变变量的值,初学者容易把它给忽略。S7200的符号数(可正可负)是用2进制补码方式表示,最高位是符号位,当数位长度发生变化时,符号位必须予以正确处理,否则会造成数值转换错误。