自动化网-工控人家园官网移动版

主页 > 工控品牌 > 西门子 >

西门子S7-300计数器的初始值引发的错误-plc的NEG地址下降沿检测指令

有人遇到了一个很有趣的问题。
 
在初始化组织块OB100中设置MW20的初始值为10。用MW20作S7计数器的预设值PV。计数器得到第一个计数脉冲时,系统错误SF灯亮,CPU停机。
 
CPU停机的原因如下:
计数器的预设值PV为BCD码,计数器得到第一个计数脉冲时,首先将OB100中设置的MW20的初值10转换为BCD码,10对应的16进制数为16#A,不是BCD码,所以出现编程错误。
出错后在模块信息的诊断缓冲区中可以看到“BCD转换错误”。
将OB100中的10改为C#10就OK了。 
 
plc的NEG地址下降沿检测指令

符号:
     NEG 地址下降沿检测符号

 

参数 数据类型 内存区域 说明
<address1> BOOL I、Q、M、L、D 已扫描信号
<address2> BOOL I、Q、M、L、D M_BIT边沿存储位,存储<address1>的前一个信号状态
Q BOOL I、Q、M、L、D 单触发输出

 

说明:NEG(地址下降沿检测)比较<address1>的信号状态与前一次扫描的信号状态(存储在<address2>中)。如果当前RLO状态为“1”且其前一状态为“0”(检测到上升沿),执行此指令后RLO位将是“1”。

状态字:

 

  BR CC 1 CC 0 OV OS OR STA RLO /FC
写: X - - - - X 1 X 1

 

实例:
    
满足下列条件时,输出Q4.0的信号状态将是“1”:
·输入I0.0、I0.1和I0.2的信号状态是“1”
·输入I0.3有下降沿
·输入I0.4的信号状态为“1”


(责任编辑:admin)