登录
首页 PLC论坛 欧姆龙OMRON
回帖 发帖
正文

主题:CP1H转换指令

点击:1659 回复:6

各位前辈,有谁用过,把DINT数据转换为INT的指令,请老师们指点
16-07-02 06:09

引用 963063376 在 2016/7/2 6:09:55 发言【内容省略】

所有的PLC对于DINT转INT处理时的步骤是这样的:
第一步:判断DINT中的数据是否大于32767,如果是,那么直接转换为32767,否则,判断是否小于-32768,如果是,则直接输出-32768.
第二步:如果介于32767~-32768之间,那么判断DINT的符号,正数的话,直接读取低字,如果是负数的话,读取低字的同时给INT的最高位置1.
至于低字在前还是在后,取决于所使用的PLC所采取的存储方式。
Good Luck~
16-07-02 07:49
双字转换字指令,这个在大于单字范围时,一直未能理解
16-07-02 08:27

引用 高雅的雅 在 2016/7/2 8:27:27 发言【内容省略】

踏踏实实的论坛里多学习几年,你会理解为什么的。
16-07-02 08:41
谢谢,欧姆龙CP1H有这样的指令吗
16-07-02 21:11

引用 963063376 在 2016/7/2 21:11:59 发言【内容省略】

没有直接的指令,你可以按照上述的回帖自己编写一段用于转换。
你也可以建立功能块,将DINT数据用于输入,输出为INT数据;
在功能块中,如果你选用梯形图方式,那么你仍然需要上述的转换方式,如果你使用ST语言方式,那么你可以写如下程序进行转换:
     INT_DATA := DINT_TO_INT(DINT_DATA);
Good Luck~
16-07-03 08:07
谢谢您的解答
16-07-03 21:11

工控新闻

更多新闻资讯