注释:这是用STL(语句表)编写的两段字节型数据比较程序
第一行: L DB13.DBB1
解释:读取编号为13的数据块中编号为1的字节型数据,注意,西门子的PLC地址编号都是从0开始的,编号为1的字节实际上是第二个字节,第一个字节的编号是0)
第二行: L B#16#1
解释:读取一个8位
16进制的常量“1”,或者说读取一个字节型16进制常数“1”,反正就是一个常数“1”
第三行: ==I
解释:整数型比较指令“等于”,它的作用是比较上面读取的两个数值是否相等,也就是比较一下“DB13.DBB1”是否等于16进制的“1”
第四行:JC YXL
解释:“JC”是有条件的跳转指令,当第三行的比较结果是“相等”时,跳转到标签为“YXL”的程序段,这里的“YXL”是编程者自己定义的一个标签名字,可以随便写,便于自己记忆就行。你往下翻肯定能找到一个小方框里边写着“YXL”,这就是标签,只要前边的比较结果是“等于”,从第五行一直到目标标签中间的程序就不再执行了,直接跳到目标标签处并继续向下执行后边的程序;但是如果第三行处的比较结果不是“等于”,也就是说只要DB13.DBB1不是16进制的1,那么就不执行跳转指令,继续执行第五行程序
后边的程序与前边的就一样了,不需要重复解释了
追问L 14
T MB22
这两句是什么意思呢,L指令后面不应该是地址吗?
追答常量变量都可以,这两句意思就是把14赋值给MB22
这两句和梯形图中的MOVE指令是一样的效果