您现在所在的是:

PLC论坛

回帖:0个,阅读:996 [上一页] [1] [下一页]
* 帖子主题:

S7-300 ITD指令的疑问

6047
liaosun
文章数:1398
年度积分:50
历史总积分:6047
注册时间:2003/5/4
发站内信
2015论坛贡献奖
2014论坛贡献奖
2013论坛贡献奖
2012论坛贡献奖
2011博客贡献奖
2010博客杰出贡献奖
发表于:2013/12/23 9:28:28
#0楼
下面是网友不可取代给出的老外编的某设备的局部程序:
L     #VehiclesLeftToDo           //Load vehicle number
ITD                             //Convert from integer to double integer
SLD   4                           //Shift left 4 bits (align byte boundary and multiply by 2)
LAR1                               //Save in address register 1
装入的 #VehiclesLeftToDo都是正数。
使人困惑的是程序中有的地方有ITD指令,有的地方又没有ITD指令。
下面是我的回帖:
ITD指令用来将16位的整数转换为32位的双整数。转换时应保证符号位不变。
正数的符号位为0,对正数执行ITD指令,得到的双整数的高16位全部为0。L指令将正数 #VehiclesLeftToDo传入累加器低16位后,高16位自动变0,所以可以省去ITD。
负数的符号位为1,对负数执行ITD指令,得到的双整数的高16位全部为1。如果传入累加器的是负数,必须使用ITD指令,否则负数就变成正数了。
[/URL] [/URL]
此帖来自中华工控网工控博客
原文件地址:http://blog.gkong.com/more.asp?id=178869&Name=liaochangchu
我是廖常初,是一个高校的老师,曾在企业从事机械、电气技术工作,长期从事工业控制和PLC应用的教学、科研和工程应用工作。博客中的日志除注明外均为原创。愿意在此与大家探讨工控的问题!
廖常初工控博客地址:http://blog.gkong.com/blog.asp?name=liaochangchu
我曾写过几本小书: 《PLC编程及应用》第3版(S7-200)、《S7-300/400 PLC应用技术》第3版、《FX系列PLC编程及应用》第2版、《S7-200 PLC编程及应用》、《PLC基础及应用》第2版(FX系列大专教材)、《西门子人机界面(触摸屏)组态与应用技术》、《西门子工业通信网络组态编程与故障诊断》、《S7-1200 PLC编程及应用》第2版、《跟我动手学S7-300/400 PLC》、《跟我动手学FX系列PLC》
机械工业出版社廖常初图书专题:http://www.gkong.com/zt/liaochangchu/

关于我们 | 联系我们 | 广告服务 | 本站动态 | 友情链接 | 法律声明 | 非法和不良信息举报

工控网客服热线:0755-86369299
版权所有 工控网 Copyright©2025 Gkong.com, All Rights Reserved

31.2002