中国自动化学会专家咨询工作委员会指定宣传媒体
免费注册 登录 广告服务 | 客服中心
您现在所在的是:

西门子SIEMENS

抖音 西门子减速电机 德嘉 台达 英威腾 泓格论坛 西门子 我和LOGO!有个约会 FLIR红外热像论坛 【有奖活动】英威腾 “Ni美国国家仪器 “PLC发展趋势大讨论”活动圆满结束 cc-link图文征集活动 西门子SMART LINE V3
工控论坛首页 西门子SIEMENS → 浏览主题: S7-1200 SHR 向右移位指令,请教
发表新帖 回复该主题
回帖:7个,阅读:209 [上一页] [1] [下一页]
* 帖子主题:

S7-1200 SHR 向右移位指令,请教

分享到
701
变量请用_线
文章数:227
年度积分:644
历史总积分:701
注册时间:2018/12/30
发站内信
发表于:2019/8/15 16:57:58
#0楼
如:右移1位时,怎样用1填充.
一开始为:0000,0000,0000,0000
移位后为:1000,0000,0000,0000
如上,看帮助是有符号数会用1填充,但一直没试出来。。。
多谢


701
变量请用_线
文章数:227
年度积分:644
历史总积分:701
注册时间:2018/12/30
发站内信
发表于:2019/8/15 16:59:51
#1楼
可以的话,最好有例子,我这边上传不了图片。
[此贴子已经被作者于2019/8/15 17:15:53编辑过]
12265
李东泽 版主
文章数:6405
年度积分:3193
历史总积分:12265
注册时间:2013/4/20
发站内信
2018春节活动(三)
英威腾变频器(三)
龙诚PLC体验(三)
三菱电机活动(一)
发表于:2019/8/15 17:42:08
#2楼
可以使用“右移”指令将输入 IN 中操作数的内容按位向右移位,并在输出 OUT 中查询结果。 参数 N 用于指定将指定值移位的位数。当参数 N 的值为“0”时,输入 IN 的值将复制到输出 OUT 中的操作数中。如果参数 N 的值大于可用位数,则输入 IN 中的操作数值将向右移动可用位数个位。无符号值(如:UInt,Word)移位时,用零填充操作数左侧区域中空出的位。 如果指定值有符号(如:Int),则用符号位的信号状态填充空出的位。可以从指令框的“???”下拉列表中选择该指令的数据类型。下图说明了如何将整数数据类型操作数的内容向右移动 4 位:
附件 SHR.gif
+8
701
变量请用_线
文章数:227
年度积分:644
历史总积分:701
注册时间:2018/12/30
发站内信
发表于:2019/8/15 17:47:42
#3楼
回复 #2楼 李东泽
符号位的信号状态,这个不知道再怎么弄,哭。试了好多都不行。我是直接参数弄为-1这样来移位
[此贴子已经被作者于2019/8/15 17:50:29编辑过]
12265
李东泽 版主
文章数:6405
年度积分:3193
历史总积分:12265
注册时间:2013/4/20
发站内信
2018春节活动(三)
英威腾变频器(三)
龙诚PLC体验(三)
三菱电机活动(一)
发表于:2019/8/15 17:52:24
#4楼
以下是引用变量请用_线2019/8/15 17:47:42的发言:
符号位的信号状态,这个不知道再怎么弄,哭。试了好多都不行。我是直接参数弄为-1这样来移位
[此贴子已经被作者于2019/8/15 17:50:29编辑过]
如果操作数“TagIn”的信号状态为“1”,则将执行“右移”指令。 “TagIn_Value”操作数的内容将向右移动 3 位。 结果发送到输出“TagOut_Value”中。 如果该指令执行成功,则使能输出 ENO 的信号状态为“1”,同时置位输出“TagOut”。
附件 SHR_PROGRAM.gif



附件 SHR_Table.gif
10461
pqsh 版主
文章数:4417
年度积分:2322
历史总积分:10461
注册时间:2006/8/22
发站内信
2018论坛解答高手
发表于:2019/8/15 20:07:13
#5楼
以下是引用变量请用_线2019/8/15 16:57:58的发言:
如:右移1位时,怎样用1填充.
一开始为:0000,0000,0000,0000
移位后为:1000,0000,0000,0000
如上,看帮助是有符号数会用1填充,但一直没试出来。。。
多谢


符号位,当它是负数的时候,符号位才可以为1,填进来才填1.
你这样试试,把一个数(初始为0)减2,就是负的了.
然后用shr,类型选有符号,比如int,sint等.
如果我忘了我
请帮忙记得我
pqsh@163,326199298@
10461
pqsh 版主
文章数:4417
年度积分:2322
历史总积分:10461
注册时间:2006/8/22
发站内信
2018论坛解答高手
发表于:2019/8/15 20:10:03
#6楼
如果我忘了我
请帮忙记得我
pqsh@163,326199298@
701
变量请用_线
文章数:227
年度积分:644
历史总积分:701
注册时间:2018/12/30
发站内信
发表于:2019/8/16 13:56:37
#7楼
多谢上面二位版主,上面方法没问题;原来是要监控二进制格式,指令块有自动将值反转,之前一直搞错了。
如-64向右移一位之后,变为-32如果按1填充的话是错的,其实不然,看二进制的话从1111_1111_1100_0000变为1111_1111_1110_0000,所以可行。
感谢,积分已送出。
工控学堂推荐视频:

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

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

140.4