quote:以下是引用万泉河在2012-09-26 07:51:49的发言:
先旗帜鲜明的表明态度,支持冬日和zane。
要讨论DI to I的严谨,就必须充分考虑这个数据流的前世今生。
就是产生这个DI的过程中有没有可能产生长于16位的数据,而转换成I以后对于长于16位的数据又是怎么处理的。
从前世来说,如果这个数值无限大,你为啥还要妄图做一次转换呢?啥目的?老老实实在整个数据流中一直使用DI不就挺好吗?比如要把流量累计值送到WINCC,那也就是建立一个DINT的tag而已。
从后世来说,如果你得到了长于16位的数据,现在产生溢出了,你是给送出0呢还是送出高位部分呢,还是送32767呢?依我看,你给送出啥值,都达不到绝对严谨。
别说你还有error状态字,这个状态字给谁看? 别忘了,你这是PLC,别指望你还能和WINXP一样有个溢出蓝屏的机会!
n次可以把你对error的处理方式再拿出来探讨一下。别说你产生了就不管了啊!
我觉得判断和不判断是否会溢出其实代表了 理科 和 工科 的两种思维方式。
判断是否会溢出,实际有点完全抛弃现场情况,纯理论进行研究。这就是理科的思路,讲究非常严密,各种情况都要考虑到,研究出来的理论适合一切情况(当然这只是理想,或者说是终极目标)。
不判断是否会溢出,则可能是工科的思维方式。考虑现场情况,简便好用就行。
举个例子,比如计算100kW电机的电流,那要是按照理科的思维方式,那就是用理论公式计算;要是按照工科的思维方式,电流大概是功率的2倍,估算一下就得了。
我是学理科的,现在搞工控,正在习惯工科的思维方式。顺便问一下,大家是学理的,还是学工的?我看了N侠的很多帖子,觉得N侠的理论功底很强,令人羡慕。