热门搜索:
上海斌勤电气技术有限公司是西门子PLC中国总代理, 西门子数控伺服总代理。是专业工业自动化产品的西门子产品维修中心。致力于为您提供在食品、化工、水泥、电力、环保等领域的电气及自动化技术的完整解决方案,包括自动化产品及系统、工程项目执行及管理、主要过程控制领域技术支持,以及专业的售后服务、培训等。
SM 322数字量模块6ES7322-1BL00-0AA0
SIMATIC S7-300,数字输出 SM 322,电位隔离, 32数字输出,24V DC,0.5A,1个 40针 总电流 4A/组 (16A/模块)
SIMATIC S7-300,数字输出 SM 322,电位隔离, 32数字输出,24V DC,0.5A,1个 40针 总电流 4A/组 (16A/模块)
主程序
下载到ST60中,程序运行正常,如果下载到CR60中,程序运行就会报非致命错误:操作数非法(错误码:0090),图2为具体的非致命错误信息:
PLC信息
根据程序分析错误出现的原因和中断有关,可以查询S7-200 SMART系统手册中断章节可以找到对应答案,如表1所示,24号中断事件CR60不支持,所以在运行时会报错非致命错误。
综上,当需要程序在多个不同类型CPU之间下载或者移植时,就需要提前了解各个CPU的程序容量大小、支持的数据区的大小,断电保持区域大小,是否使用到了CPU不支持的功能或者CPU固件版本是否支持等因素,只有了解了这些,才能做到有的放矢。
在日常编程过程中,我们可能需要各种标准库,有时需要子程序和中断程序有多重调用关系,例如下面这个案例,程序想使用格雷码转换库在定时中断中每隔100ms进行一次数据的格雷码转换,请看图3:
程序的调用关系为:中断子程序INT0调用子程序SBR1,SBR1中调用子程序SBR2,SBR2中的程序如图4所示,下载到CPU中,通过状态图表监视程序状态,发现没有输出,如图5所示:
状态图标监控无输出
进一步监控PLC信息,可以看到图6的非致命错误报警:**出用户子例程嵌套级别(错误码:0008)
PLC信息
S7-200 SMART手册中规定:从主程序调用子例程的嵌套深度是 8 级,从中断例程调用嵌套深度是 4 级。
现在来看上述程序的调用关系:
表面上也仅仅嵌套了3级,满足中断嵌套深度要求,但是仔细查看
,总共5层嵌套关系,**过了CPU支持的嵌套深度,导致CPU 无法运行,知道了原因,我们可以减少调用嵌套为4层以内,则程序就可以正常执行了。
SM 322数字量模块6ES7322-1BL00-0AA0