K9000 只有加锁,没解锁,导致程序不处理呼叫业务了。

本文探讨了在函数中出现的死锁问题,具体原因是由于加锁与解锁操作中间存在return语句导致的问题。通过分析代码实例,解释了如何避免这种错误,并提供了修正建议。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

停止自动检查进程退出重启进程功能脚本命令

/usr/keygoe/GUard stopmp


问题:hash优化不呼了

原因:加锁与解锁中间的地方有return语句
同一个函数中,加锁后因为return 退出了,没有解锁,导致死锁。




将以下程序用信捷PLC C语言编写:LDP SM13 MCS LD> D9028 K2000 BIN D9028 D9027 SUB D9027 K2000 D9010 LD<= D9028 K2000 MOV K2000 D9027 MOV K20 D9010 LD SM0 BIN D9029 D9011 BIN D9030 D9012 BIN D9031 D9013 BIN D9032 D9014 BIN D9033 D9015 BIN D9034 D9016 MCR ;#########自定义参数 START ######### ;设备ID 数值范围 22010101至 99999999 LD SM2 SET Y0 ;#######自定义参数 END############# ;##########以下为锁机程序########## ; 读取PLC实时时钟 LDP SM13 OR SM2 TRD D9000 ;检查CPU时钟是否丢失 LD= D9000 HD9000 LD= D9001 HD9001 AND< D9002 HD9002 OR< D9001 HD9001 ANB OR< D9000 HD9000 LD SM2 ORP SM13 ANB TWR HD9000 ;检查HMI日期时间合法性 LDP SM13 OR SM2 LD= D9000 D9010 LD= D9001 D9011 AND< D9002 D9012 OR< D9001 D9011 ANB OR< D9000 D9010 ANB TWR D9010 ;自动更新断电保持DT LD= D9010 HD9000 LD= D9011 HD9001 LD= D9012 HD9002 AND>= D9013 HD9003 OR> D9012 HD9002 ANB OR> D9011 HD9001 ANB OR> D9010 HD9000 ANDP SM13 BMOV D9010 HD9000 K7 ;锁机状态 LD HM9000 MCS OUT M9000 LD= D9000 HD9007 AND>= D9001 HD9008 OR> D9000 HD9007 ANI M9002 MCS LD T9001 OUT M9001 LDI M9007 TMR T9001 K3000 K100 MCR LD= D9000 HD9007 LD= D9001 HD9008 AND>= D9002 HD9009 OR> D9001 HD9008 ANB OR> D9000 HD9007 LD SM2 OR M9002 ANB OUT M9002 MCR LD M9001 OR M9002 ANI T9000 TMR T9000 K9000 K100 ;手动设置锁机日期 LDP T9000 SET M9009 LDP M9004 ANI M9000 MCS SET HM9000 SET M9009 LD> HD9011 K0 AND<= HD9011 K99 MOV HD9011 HD9007 LD< HD9011 K0 MOV K22 HD9007 LD> HD9011 K99 MOV K99 HD9007 LD> HD9012 K0 AND<= HD9012 K12 MOV HD9012 HD9008 LD< HD9012 K0 MOV K1 HD9008 LD> HD9012 K12 MOV K12 HD9008 LD< HD9013 K7 MOV K7 HD9009 LD> HD9013 K31 MOV K31 HD9009 LD= HD9008 K2 MCS LD> HD9013 K28 MOV K28 HD9009 LD>= HD9013 K7 AND<= HD9013 K28 MOV HD9013 HD9009 MCR LD= HD9008 K1 OR= HD9008 K3 OR= HD9008 K5 OR= HD9008 K7 OR= HD9008 K8 OR= HD9008 K10 OR= HD9008 K12 AND>= HD9013 K7 AND<= HD9013 K31 MOV HD9013 HD9009 LD= HD9008 K4 OR= HD9008 K6 OR= HD90
04-04
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值