西门子S7-300CPU寄存器状态字的用法介绍
点击数:7364 次 录入时间:03-04 11:46:43 整理:http://www.55dianzi.com PLC入门
如果用户不熟悉JZ指令和状态位C0和CC1的具体含义,编程时就需要通过比较指令将比较结果存入一个二进制位中,再根据这个二进制位通过JC/JCN指令来控制程序的执行了。 例3:我们实际应用中可能要利用某些协议转换网关(比如说Hilscher公司的NTTAP系列网关)来和某些串口协议的仪表进行通信时,会遇到CRC校验的问题,关于CRC校验时需要判断溢出位是否为1的问题来进行程序的进一步计算。我们以EURO2408的MODBUS通信时需要的CRC校验为例说明CRC校验的步骤: 1、装载16#FFFF到一个16位CRC寄存器; 2、将CRC寄存器的高8位字节与信息中的第一个8位字节相异或,结果返回到CRC寄存器中; 3、将CRC寄存器数据向右移动一位; 4、如果溢出的位等于1,则将CRC寄存器与16#A001相异或,结果返回到CRC寄存器中; 4、如果溢出的位等于0,则重复第3步; 5、重复第3、4步骤,直到已经移位了8次; 6、将CRC寄存器的高8位字节与信息中的下一个8位字节相异或,结果返回到CRC寄存器中; 7、重复第3步到第6步,直到信息中所有字节都与CRC寄存器相异或,并都移位了8次; 8、最后的CRC寄存器中的结果即为CRC校验码,最后被添加到信息(数据)的末尾(交换!低8位 在前,高8位在后;) 在第4步中需要判断溢出的位是否为1,如何判断对于整个程序有着重要的影响。我们可以用A>0指令来判断这个条件,具体代码的编写,有兴趣时大家可以根据上面的步骤编写一个自己的CRC程序。 4.结束语 在一般情况下,我们不必考虑这些状态位,但在某些情况下,利用这些状态位并结合一定的指令,可以给我们的编程带来更大的灵活性,同时对于进一步提高自己的编程水平也有一定的作用。上一页 [1] [2]
本文关键字:寄存器 西门子 PLC入门,plc技术 - PLC入门