您当前的位置:五五电子网电子知识plc技术PLC入门西门子S7-300CPU寄存器状态字的用法介绍 正文
西门子S7-300CPU寄存器状态字的用法介绍

西门子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入门