电动机功率 | 4kW | 外形尺寸 | 3mm |
---|---|---|---|
应用领域 | 环保,食品/农产品,地矿,包装/造纸/印刷,纺织/印染 | 重量 | 6kg |
西门子数控系统显示300608伺服故障维修,西门子数控系统维修,数控系统伺服驱动器维修,数控系统伺服电机维修,西门子802DSL面板维修,按键操作失灵维修,花屏维修,黑屏维修,无显示维修,西门子整流单元维修,西门子数控系统显示300608伺服故障维修,西门子802DSL数控系统维修,数控系统报25201伺服故障维修,数控系统接地故障维修。
![]() |
参考价 | ¥322 |
订货量 | 1 |
更新时间:2019-07-04 16:35:31浏览次数:447
联系我们时请说明是化工仪器网上看到的信息,谢谢!
西门子数控面板840D花屏有时死机维修
西门子S7-300/400循环中断组织块
循环中断组织块用于按一定的时间间隔循环执行中断程序,例如周期性地定时执行闭环控制系统的PID运算程序,间隔时间从STOP切换到RUN模式时开始计算。
时间间隔不能小于5ms。如果时间间隔过短,还没有执行完循环中断程序又开始调用它,将会产生时间错误事件,调用OB80。如果没有创建和下载OB80,CPU将进入STOP模式。
循环中断组织块OB30~ OB38默认的时间间隔和中断优先级见表6-5,用户可以通过参数设置来改变优先级。CPU 316及以下的CPU只能使用OB35,其余的CPU可以使用的循环中断OB的个数与CPU的型号有关。
表6-5 循环OB的默认参数
如果两个OB的时间间隔成整倍数,不同的循环中断OB可能同时请求中断,造成处理循环中断OB的时间超过的循环时间。为了避免出现这样的错误,S7-400的每个循环中断组织块可以定义一个相位偏移,用于在循环时间间隔到达时,延时一定的时间后再执行循环中断。相位偏移m的单位为ms,应有0≤m<n,式中n为循环的时间间隔。
假设OB38和OB37的中断时间间隔分别为10ms和20ms,它们的相位偏移分别为0ms和3ms。OB38分别在t=10ms、20ms、……60ms时产生中断,而OB37分别在t=23ms、43ms、63ms时产生中断。
没有的SFC来激活和禁止循环中断,可以用SFC 40和SFC 39来激活和禁止它们。SFC 40“EN INT”是用于激活新的中断和异步错误的系统功能,其参数MODE为0时激活所有的中断和异步错误,为1时激活部分中断和错误,为2时激活的OB编号对应的中断和异步错误。SFC 39“DIS_INT”是禁止新的中断和异步错误的系统功能,MODE为2时禁止的OB编号对应的中断和异步错误,MODE必须用十六进制数来设置。
【例6-4】 在I0.0的上升沿时启动OB35对应的循环中断,在I0.1的上升沿禁止OB35对应的循环中断,在OB35中使MW2加1。
在STEP 7中生成名为“OB35例程”的项目(见随书光盘中的同名例程)。选用CPU 312C,在硬件组态工具中打开CPU属性的组态窗口,由“周期性中断”选项卡可知只能使用OB35,其循环周期的默认值为100ms,将它修改为1000ms,将组态数据下载到CPU中。如果没有下载,循环周期为默认值100ms。下面是用STL编写的OB1的程序代码:程序段1:在I0.0的上升沿激活循环中断
A 1 0.0
FP M 1.1
JNB m001 //不是I0.0的上升沿时跳转
CALL “EN_IRT” //激活OB35对应的循环中断
MODE :=B#16#2 //用OB编号中断
OB_NR :=35 //组织块编号
RET_VAL:=MW100 //保存执行时可能出现的错误代码,为0时无错误
m001: NOP 0
程序段2:在I0.1的上升沿禁止循环中断
A I 0.1
FP M 1.2
JNB m002 //不是I0.1的上升沿时跳转
CALL “DIS_IRT” //禁止OB35对应的循环中断
MODE :=B#16#2 //用OB编号中断
OB_NR :=35 //组织块编号
RET_VAL :=MW104 //保存执行时可能出现的错误代码,为0时无错误
m002: NOP 0
下面是用STL编写的OB35中断程序,每经过1000ms,MW2被加1一次:
LMW 2 //MW2加1
+ 1
TMW 2
可以用PLCSIM仿真软件模拟运行上述例程,将程序和硬件组态参数下载到仿真PLC,进入RUN模式后,可以看到每秒钟MW2的值加1。用鼠标模拟产生I0.1的脉冲,循环中断被禁止,MW2停止加1。用鼠标模拟产生I0.0的脉冲,循环中断被激活,MW2又开始加1。
PLC中的普通定时器的工作与扫描工作方式有关,其定时精度受到不断变化的循环周期的影响。延时中断组织块的延迟时间为1~60000ms,延时精度为1ms,优于定时器的精度。
S7提供了4个延时中断OB( OB20~ OB23),它们用SFC 32“SRT_DINT”启动,延时时间在SFC 32中设置,启动后经过设定的延时时间之后触发中断,调用SFC 32的OB。需要延时执行的操作放在OB中,例如立即输出一个数字量信号。必须将延时中断OB作为用户程序的一部分下载到CPU。
CPU 316及以下的CPU只能使用OB20,其他CPU可以使用的日期时间中断OB的个数与CPU的型号有关。
如果延时中断已被启动,延时时间还没有到达,可以用SFC 33“CAN_DINT”取消延时中断的执行。SFC 34“QRY DINT”用来查询延时中断的状态字STATUS。
如果有下列任何一种情况发生,操作系统将会调用异步错误OB:
1) OB已经被SFC 32启动,但是没有下载到CPU。
2)延时中断OB正在执行延时,又有一个延时中断OB被启动。
【例6-3】 在主程序OB1中实现下列功能:
1)在I0.0的上升沿用SFC 32启动延时中断OB20,10s后OB20被调用,在OB20中将Q4.0置位,并立即输出。I0.2为1时Q4.0被复位。
2)在延时过程中如果I0.1由0变为1,用SFC 33取消延时中断,停止调用OB20。
项目的名称为“OB20例程”(见随书光盘中的同名例程)。下面是OB1中的程序代码:程序段1:在I0.0的上升沿启动延时中断
A I 0.0
FP M 1.0
JNB m001 //不是I0.0的上升沿时跳转
CALL “SRT_DINT” //启动延时中断OB20
OB_NR :=20 //组织块编号
DTIME :=T#10S //延时时间为10s
SIGN :=MW12 //保存延时中断是否启动的标志
RET_VAL :=MW100 //保存执行时可能出现的错误代码,为0时无错误
m001: NOP 0
程序段2:查询延时中断
CALL“QRY_DINT" //调用SFC 34,查询延时中断OB20的状态
OB_NR :=20 //组织块编号
RET_VAL :=MW102 //保存执行时可能出现的错误代码,为0时无错误
STATUS :=MW4 //保存延时中断的状态字,MB5为低字节程序段3:在10.1的上升沿取消延时中断
A 1 0.1
FP M 1.1 //I0.1的上升沿检测
A M5.2 //延时中断未被激活或已完成(状态字第2位为0)时跳转
JNB m002
CALL “CAN_DINT” //调用SFC 33禁止OB20延时中断
OB_NR :=20 //组织块编号
RET_VAL :=MW104 //保存执行时可能出现的错误代码,为0时无错误
m002: NOP 0
A 1 0.2
R Q 4.0 //0.2为“1”时复位Q4.0
下面是用STL编写的OB20的程序代码:
SET
= Q 4.0 //将Q4.0无条件置位
LQW 4
TPQW 4 //立即输出Q4.0
可以用PLCSIM仿真软件模拟运行上述例程,运行时监视M5.2和M5.4。将程序下载到仿真PLC,进入RUN模式时,M5.4马上变为1状态,表示OB20已经下载到了CPU中。用I0.0启动延时中断后,M5.2变为1状态,延时时间到时Q4.0变为1状态,M5.2变为0状态。在延时过程中用I0.1禁止OB20延时,M5.2也会变为0状态。可以用I0.2复位Q4.0。
西门子数控面板840D花屏有时死机维修