handapipi
我的设备主轴上有一个凸轮,凸面240度,靠接近开关感应给PLC提供信号,我在信号的下降沿检测有没有光电信号,如果有,给一个2进制数的第7位赋值1,凸轮信号的上升沿触发右移位,然后检测这个2进制数的第2位,如果是0不输出,如果是1就输出,我用和利时PLC就是这么编的。和利时的软件里有位赋值指令、移位指令和位提取指令,很方便的就编出来了,研究了半天西门子S7-200的指令,只找到了移位,位赋值和位提取都没有,不知道该怎么办了,请哪位大侠行行好,写个程序让我参考一下,谢谢!
神仰慕的孩子
看了半天条件.我只想说下我个人的一点小想法.抛砖引玉.
你说的位赋值和位提取,可以通过与逻辑运算和或逻辑运算做到.
比如给二进制的第七位赋值为1,可以通过或逻辑.给原二进制数或上十进制数64,来实现.
比如检测二进制数的第二位,可以通过与逻辑,与上一个十进制数2,然后再通过比较指令,看结果数是不是大于0来判断.
以上~~~~~~
我说的检测第二位是这样做的.按你举的例子.
00000100和00000100采用与逻辑/结果是00000100,也就是这个数的实际值是大于0的.结果就输出
如果是00010010和00000100采用与逻辑的话.结果是00000000.也就是说这个数的实际值是等于0的.结果是不输出的.
以上~~~~~
晕,后来我合计了一下,检测第二位时,不用这么做也行.
如果这个二进制数存到MW100中,直接
A m101.2
Q 0.0