S7-200的160个常见问题解答之五
81:使用定时器加自复位做一个不断重复的计时,调用其他功能或子程序时,为何看起来工作不规律? 请注意《S7-200系统手册》中,关于三种定时器刷新规律的描述。 按这种方法使用定时器时,定时器的置位、复位可能与程序扫描周期不配合,存在造成上述问题的机制。定时比较短的定时任务应使用“定时中断”功能,这样更为可靠。 82:编了一个利用定时器的程序,在编译时已经通过,为何下载到CPU中时提示出错? 这种情况往往是调用的定时器号与定时器类型不配合造成的。参见帮助的表格,如T7只能用作TONR,而不能用于TON或TOF。 83:定时中断(SMB34/SMB35)最长定时为255ms,如何实现更长时间的定时? 可以采用T32/T96中断,最长时间可到32.767s。在定时中断服务程序中对进入中断的次数进行计数,也能实现更长时间的中断延时。 84:定时中断个数不够怎么办? 每个定时中断服务程序不一定只能处理一项定时任务,可以把几个任务放在一个定时中断服务程序中。 对于定时间隔不同的任务,可以计算出它们的定时长度的最大公约数,以此作为定时中断的时间设置。在中断服务程序内部对中断事件进行计数,据此编程别处理不同的任务。 85:使用子程序时,为何动作只能执行一次,或者某些状态不能结束? 如果发生动作不能重复执行,或者状态不能结束(像锁死了一样),而这些功能都与子程序有关时,请检查是否有条件调用子程序。调用子程序的条件在上述动作执行后,或者进入某个状态后不再有效,无法再次“激活”,而脱离上述状态或复位的指令正好在子程序内,必然造成上述的现象。 86:带形式参数的子程序,定义为OUT类型的变量为何会在多次调用子程序时互相干扰? 那是因为定义为OUT类型的形式参数又在子程序内部参与了运算。凡是此类参数都应当定义为IN_OUT类型。 87:与中断服务程序有关的计算任务,为何会偶尔得出不正确的结果? 出现这种现象的原因多是在主(子)程序和中断程序之间传递数据的机制不当。 中断程序可能在任何时刻执行,如果此时主程序(或子程序)正在对中断程序使用的数据进行操作,其中间结果可能带入中断程序,造成计算结果的变化;同样地,在中断程序中产生数据也对主(子)程序中的计算有类似影响。 88:中断服务程序看起来没有执行? 可以在中断程序中加一个测试程序段,如使用SM0.0(常为“
提交
助力企业恢复“战斗状态”:MyMRO我的万物集·固安捷升级开工场景方案
车规MOSFET技术确保功率开关管的可靠性和强电流处理能力
未来十年, 化工企业应如何提高资源效率及减少运营中的碳足迹?
2023年制造业“开门红”,抢滩大湾区市场锁定DMP工博会
2023钢铁展洽会4月全新起航 将在日照触发更多商机