1.首先我自己做了跑马灯程序内容如下(一些启动条件我就不说了):
①把2#00000001通过MOVE指令赋值给QB3
②把QB3定义变量Byte型
③通过一个2赫兹的常开连接一个循环左移ROL指令,输入QB3输出QB3,移动数为1
④当启动条件关闭后把2#00000000通过MOVE赋值给QB3
整体思路就是启动条件达成后把00000001对应的Q0.0赋值给QB3,通过循环左移的方式变成00000010-00000100……对应的Q3.0-Q3.7逐个点亮,在通过一个一直启动的2赫兹输入(因为如果是00000000他怎么移位都是这样对点亮没有影响),来达成循环左移的达成条件※(这里有一个问题顺便问了,移动,移位和循环指令的检测条件是沿吗还是说RLO为1就触发?)最后复位条件达成后通过MOVE指令把2#00000000赋值给QB3
2.调试时本来想通过设备总览的方式直接看AQ输出模块看看灯能不能亮发现不行,而后我用通过监测值的方式看QB3(※起初发现他的默认检测值是16进制我给改成了2进制,后来查阅了一些资料发现是按16进制来弄的,这里想问一下为什么推荐使用16进制而不是二进制),发现他只停留在了2#00000001也就是Q3.0这个灯,并不移动,因为本人用的是虚拟机8内存4逻辑,怀疑是不是处理器性能低显示有问题,然后为了能方便观察结果我在HMI里面弄了8个灯对应的Q3.0-Q3.7(连接没有问题),发现也是只显示了Q3.0这一个灯(这里不排除软件性能的问题)
然后我调用了怎么的标准答案发现跟我的大差不差(※这里有一个疑问,为什么赫兹要用沿来显示),连接了HMI和观察了监测表后还是同样的问题,然后我调用了I0.2做为输入直接控制ROL循环左移,发现他只能在2#00000001和2#00000010也就是Q3.0和Q3.1这两为直接来切换※这里我认为是问题所在
这里就是本章节的主要问题_-_-_-_-_-_-_-_-_-_-_-_
次要问题:我想知道操作数在咱们口头表达和软件使用中他俩的含义一样,修改操作数改的到底是什么,比如修改QB3时改成二进制2#00000001改的是哪里,是不是这个数据本身,还是说是修改这个数据最终的输出结果,就好像是假如有一个数是1100他的输出结果是A。这个操作数我到现在没有一个具体的理解框架,望解答!