s7200自己做的库文件重复调用,输出混乱

s7200自己做的库文件重复调用会输出混乱的情况,都是用的L寄存器搞不懂。
很简单的一个东西,统计设备运行时间

Network 2 // 秒基准用sm0.5上升沿
// 网络注释
LD     SM0.0
LPS
A      L0.0
INCB   LB20
LRD
AB>=   LB20, 60
MOVB   0, LB20
INCB   LB21
LRD
AB>=   LB21, 60
MOVB   0, LB21
INCB   LB22
LRD
AB>=   LB22, 24
MOVB   0, LB22
INCB   LB23
LRD
AB>=   LB23, 30
MOVB   0, LB23
INCB   LB24
LPP
AB>=   LB24, 12
MOVB   0, LB24
INCB   LB25
网络3
LD     SM0.0
BMB    LB20, LB1, 8LD

问题补充:
把ld的类型由out改为in_out也不行,由混乱变为第二次调用的无输出了

钻石用户推荐最佳答案

转帖:
S7-200使用子程序注意事项:
1、 使用子程序时,为何动作只能执行一次,或者某些状态不能结束?
如果发生动作不能重复执行,或者状态不能结束(像锁死了一样),而这些功能都与子程序有关时,请检查是否有条件调用子程序。调用子程序的条件在上述动作执行后,或者进入某个状态后不再有效,无法再次“激活”,而脱离上述状态或复位的指令正好在子程序内,必然造成上述的现象。
2、 带形式参数的子程序,定义为OUT类型的变量为何会在多次调用子程序时互相干扰?
那是因为定义为 OUT 类型的形式参数并非每次调用子程序时在其内部都有确定的赋值操作。可以将此类参数定义为 IN_OUT 类型,或者确保在每次调用子程序时都有赋值操作。
3、使用了L寄存器,为什么子程序的输出不正常?
由于子程序的局部变量仅在本次调用时有效,且每次获取到的局部变量资源有一定的随机性,有可能已经具有一个随机的数据存储在该局部变量地址中,因此对于OUT类型的接口变量,必须保证每次调用程序都对其进行写操作,否则就是编程逻辑的不严密。当然,用户也可以考虑使用IN_OUT变量类型代替OUT变量类型。
4、为什么子程序中的定时器和计数器不工作或者工作不正常?
如果有下面情况产生:
一个在内部使用了定时器或计数器的子程序,在同一时刻被调用了多次 
相同编号的定时器或计数器被多个子程序使用,且同一时刻这些子程序有两个或者以上被调用 
则定时器或者计数器资源会因重叠使用而相互影响,造成程序逻辑等方面的错误。

提问者对于答案的评价:

原创文章,作者:ximenziask,如若转载,请注明出处:https://www.zhaoplc.com/plc361871.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2021年7月5日 下午12:05
下一篇 2021年7月5日

相关推荐

  • 程序突然死掉与定时器的问题

    一:我有一个很简单的程序!逻辑主要是一个按钮触发后,分别经定时器延时后触发不同的输出!没有什么不同的!程序也运行正常!可是问题是为什么运行几次后突然不再执行呢?硬件肯定没有问题!重…

    SIMATIC S7-200 2021年7月5日
  • 西门子PLC200

    西门子200PLC可以控制松下A5伺服吗,?我用Q0.0接A5的 0P1和OP2,PLUSE2,和SING2接 0V  ,电源是24V的,我…

    SIMATIC S7-200 2017年7月25日
  • 200 SMART怎么计算程序大小?

    200 SMART怎么计算程序大小?比如每个子程序算多大,不同指令的大小等,现在有个程序快满了,我想算算怎么弄的? 图片说明:    最佳答案 看程序…

    2021年7月5日
  • 再问断电永久保持

    谢谢上次给于的答复若我把设置更改如下:         数据区  &n…

    SIMATIC S7-200 2021年7月5日
  • CPU226扩展模块的数量

    CPU226最多可以配置扩展模块的数量是7个是吗?我的配置是CPU226+CP243+….后面是扩展模块,是包括CP243在内最多超过7个是吗? 最佳答案 CPU226:扩展模…

    SIMATIC S7-200 2020年11月1日
  • 请教因特网模块CP243-1 IT怎样实现远程监控?

    公司老板要求做一远程监控,不知道怎样具体操作,请教各位大侠 最佳答案 可以使用 STEP 7–Micro/WIN以太网向导来组态(CP243–1)以太网模块…

    SIMATIC S7-200 2021年7月5日
  • 是不是不用I_BCD这个代码程序也可以正确执行

    比如vw2000这个字,里面存放的数为1000,因为里面的数据存储本来就是以BCD码存的,所以可以直接用V2000.1来读取这个点的数值。还是一定要用I_BCD码转换后才可以 最佳…

    SIMATIC S7-200 2019年6月11日
  • USS变频器通讯

    请问:我用S7200跟变频器通讯的时候,启动变频器后,所运行的频率不是我设定的频率(40HZ),当把P2009=0时,变频器运行的频率是P1080=30HZ;而当把把P2009=1…

    SIMATIC S7-200 2021年7月5日
  • CPU224在磁场环境下使用?

    PLC在磁场环境下使用需要注意什么呢? 最佳答案 PLC在磁场环境下使用需要注意什么呢?j简单回答:1,安装时应该避开PLC与电磁场比较大的仪器,如变频器等。电柜需要接地。2,PL…

    SIMATIC S7-200 2020年11月1日
  • PC ACCESS SP3软件

    谁有,发我一份。谢谢!!!1316505757@qq.com 最佳答案 http://pan.baidu.com/share/link?shareid=428981&uk=2248…

    SIMATIC S7-200 2017年11月23日

发表回复

登录后才能评论