最近做了一个200的项目,程序里编写了一个中断程序(INT0),然后又利用软件的向导生成了PID子程序,在运行时,自己编写的中断程序不工作,在线监测为灰色,利用软件的向导生成了PID子程序运行正常,接着,我又把利用软件的向导生成了PID删除,那么自己编写的中断程序工作正常了,通过反复对比,我发现程序不能同时运行自己编写的中断程序和利用PID向导生成的子程序,请问是什么原因?
问题补充:
感谢大家的热情的回答,我打算在项目上再试试看,估计是调用自己编写的中断程序调用了SMB34,这样引起向导生成的PID中断两者冲突,我试试看
图片说明:
最佳答案
注意:
如果你的项目中已经存在一个PID配置,则中断程序名为只读,不可更改。因为一个项目中所有PID共用一个中断程序,它的名字不会被任何新的PID所更改。
PID向导中断用的是SMB34定时中断,在用户使用了PID向导后,注意在其它编程时不要再用此中断,也不要向SMB34中写入新的数值,否则PID将停止工作。
参考:
PID常见问题(PID功能、PID向导、PID给定-反馈设置、PID自整定、手动调整PID至稳定、PID 自动\手动调节的无扰动切换、通过触摸屏实现PID参数设置和自整定功能)
http://www.ad.siemens.com.cn/productportal/Prods/s7-200-smart-portal/200SmartTop/SmartSMS/014.html
你如果需要使用定时中断,请使用SMB34之外的定时中断
补充:
嗯,一定是这个原因了~
提问者对于答案的评价:
几位说的都正确,谢谢帮助
原创文章,作者:ximenziask,如若转载,请注明出处:https://www.zhaoplc.com/plc368771.html