电动机功率 | 6kW | 外形尺寸 | 7mm |
---|---|---|---|
应用领域 | 环保,食品/农产品,地矿,包装/造纸/印刷,纺织/印染 | 重量 | 4kg |
西门子S7-1200PLC系统有五种不同模块,分别为 CPU 1211C、CPU 1212C 、 CPU 1214C、CPU1215C和CPU1217C。其中的每一种模块都可以进行扩展,以*您的系统需要。可在任何 CPU 的前方加入一个信号板,轻松扩展数字或模拟量 I/O,同时不影响控制器的实际大小。
![]() |
参考价 | ¥433 |
订货量 | 1 |
更新时间:2019-06-18 10:07:04浏览次数:199
联系我们时请说明是化工仪器网上看到的信息,谢谢!
西门子S7-1200PLC模块重庆代理商
PLC的普通定时器的工作与扫描工作方式有关,其定时精度较差。在接通延时定时器的输入信号的上升沿和定时器输出位的上升沿,分别调用SFC 1读取CPU中的日期和时间,用IEC功能FC 8从其中提取实时时间(TIME_OF_DAY)。设置时间预置值分别为5s和50s,扫描循环时间为10ms。艾特贸易小编做了多次实验,发现定时器的定时误差为1~9ms。
如果需要高精度的延时,应使用延时中断OB。用SFC 32“SRT_DINT”启动延时中断,延迟时间为1~ 60000ms,精度为1ms。延时时间到时触发中断,调用SFC 32的OB。CPU 316及以下的CPU只能使用OB20,暖启动或冷启动将清除延时中断OB的启动事件。
1.硬件组态
用新建项目向导生成一个名为“OB20例程”的项目(见随书光盘中的同名例程),CPU模块的型号为CPU 315 - 2DP。打开硬件组态工具HW Config,将硬件目录中名为“DI4xNAMUR,Ex”的4点DI模块插入4号槽,自动分配的DI模块的字节地址为0。双击该模块,打开它的属性对话框(见图4-47)。用复选框启用硬件中断,设置I0.0产生上升沿中断。在5号槽插入一块16点DO模块。
2.程序设计
在I0.0的上升沿触发硬件中断,CPU调用OB40,在OB40中调用SFC 32“SRT_DINT”启动延时中断(见图4-51),延时时间为10s。从LD12开始的8B临时局部变量是调用OB40的日期时间值,用MOVE指令将其中的后4个字节LD16保存到MD20。
图4-51 OB40中的程序
10s后延时时间到,CPU调用SFC 32的OB20。在OB20中用MOVE指令保存调用OB20的日期时间值的后4个字节(见图4-52)。同时将Q4.0置位,并通过PQB4立即输出。
图4-52 OB20中的程序
可以用I0.2将Q4.0复位(见图4-53)。在OB1中调用SFC 34“QRY_DINT”来查询延时中断的状态字STATUS,查询的结果用MW8保存,其低字节为MB9。OB_NR的实参是延时中断OB的编号,RET_VAL为SFC执行时的错误代码,为0时无错误。
在延时过程中,可以在I0.1的上升沿调用SFC 33“CAN_DINT”来取消延时中断过程。
3.仿真实验
打开仿真软件PLCSIM,将程序和组态信息下载到仿真PLC。切换到RUN -P模式时,M9.4马上变为1状态,表示OB20已经下载到了CPU中。
执行PLCSIM的菜单命令“Execute”→“Trigger Error OB”→“Hardware Interrupt( OB40 - OB47)…”(见图4-49),在“Hardware Interrupt OB (40 -47)”对话框中,输入DI模块的起始字节地址0和模块内的位地址0。单击“Apply”按钮,I0.0产生硬件中断,CPU调用OB40,M9.2变为1状态,表示正在执行SFC 32启动的时间延时。
在SIMATIC管理器中生成变量表(见图4-54),单击工具栏上的按钮,启动监控功能。MD20是在OB40中读取的BCD格式的时间值(25分9秒643毫秒),后1位为星期的代码,5表示星期4。
图4-54 变量表
10s的延时时间到时,CPU调用OB20,M9.2变为0状态,表示延时结束。OB20中的程序将Q4.0置位为1状态(见图4-52),并且用MOVE指令立即写入DO模块。可以用I0.2复位Q4.0(见图4-53)。在OB20中保存在MD24的实时时间值为25分19秒643毫秒,与OB40中保存在MD20的时间值相减,可知定时精度是相当高的。
在延时过程中用仿真软件将I0.1置位为1,M9.2变为0状态,表示OB20的延时被取消,定时时间到不会调用OB20。
硬件中断组织块(OB40~OB47)用于快速响应信号模块(SM,即输入/输出模块)、通信处理器(CP)和功能模块(FM)的信号变化。具有硬件中断功能的上述模块将中断信号传送到CPU时,将触发硬件中断。绝大多数S7 - 300 CPU只能使用OB40,S7 - 400 CPU可以使用的硬件中断OB的个数与CPU的型号有关。
为了产生硬件中断,在组态有硬件中断功能的模块时,应启用硬件中断。产生硬件中断时,如果没有生成和下载硬件中断组织块,操作系统将会向诊断缓冲区输入错误信息,并执行异步错误处理组织块OB80。
硬件中断OB默认的优先级为16~ 23,可以修改S7 - 400的优先级。
硬件中断被模块触发后,操作系统将用OB40的局部变量向用户提供模块的起始地址和模块中产生硬件中断的点的编号。如果在处理硬件中断的同时,又出现了其他硬件中断事件,新的中断按以下方法识别和处理:如果正在处理某一中断事件,又出现了同一模块同一通道产生的*相同的中断事件,新的中断事件将丢失,即不处理它。
在图4-46中数字量输入模块输入信号的*个上升沿时触发中断,由于正在用OB40处理中断,第2个和第3个上升沿产生的中断信号丢失。
图4-46 硬件中断信号的处理
如果正在处理某一中断信号时,同一模块其他通道或其他模块产生了中断事件,新的请求将被记录,空闲后再执行该中断。当前的中断组织块执行完后,再处理被记录的中断。
1.硬件组态
生成一个名为“OB40例程”的项目(见随书光盘中的同名例程),CPU模块的型号为CPU 315 -2DP。选中SIMATIC管理器左边的300站对象,双击右边窗口的“硬件”图标,打开硬件组态工具HW Config(见图4-47)。将硬件目录中名为“DI4xNAMUR,Ex”的4点DI模块插入4号槽,16点DO模块插入5号槽。
自动分配的DI模块的字节地址为0。双击该模块,打开它的属性对话框(见图4-47的右图)。用复选框启用硬件中断,设置I0.0产生上升沿中断,I0.1产生下降沿中断。
2.编写OB40中的程序
OB40中的程序(见图4-48)判断是哪个模块的哪个点产生的中断,然后执行相应的操作。临时局部变量OB40_MDL_ADDR和OB40_POINT_ADDR分别是产生中断的模块的起始字节地址和模块内的位地址,数据类型分别为WORD和DWORD,这两个变量不能直接用于整数比较指令和双整数比较指令。
首先用MOVE指令将它们保存到MW6和MD8,才能用比较指令判别是哪一个模块和哪一点产生的中断。在I0.0的上升沿将Q4.0置位,在I0.1的下降沿将Q4.0复位。
3.硬件中断的仿真实验
打开PLCSIM(见图4-49),下载所有的块,将仿真PLC切换到RUN -P模式。执行PLCSIM的菜单命令“Execute”(执行)→“Trigger Error OB”(触发错误OB)→“Hard-ware Interrupt( OB40 - OB47)…”,打开“Hardware Interrupt OB (40 - 47)”对话框(见图4-49右上方的小图),在文本框“Module address”(模块地址)内输入模块的起始地址0,在文本框“Module status(POINT_ADDR)” (模块状态(位地址))内输入模块内的位地址0。
单击“Apply”(应用)按钮,触发I0.0的上升沿中断,CPU调用0840,Q4.0被置为1状态,同时在“Interrupt OB”(中断OB)显示框内自动显示出对应的OB编号40。将位地址( POINT_ADDR)改为1,模拟I0.1产生的中断,单击“Apply”按钮,在松开按钮时,Q4.0被复位为0状态:单击“OK”按钮,将执行与“Apply”按钮同样的操作,同时关闭对话框。
4.禁止和激活硬件中断
图4-50是OB1中的程序,在I0.2的上升沿调用SFC 40 (EN_IRT)激活OB40对应的硬件中断,在I0.3的上升沿调用SFC 39(DIS_IRT)禁止OB40对应的硬件中断。SFC中的MODE为2时,OB_NR的实参为OB的编号。
单击两次PLCSIM中I0.3对应的小方框,OB40被禁止执行。这时用图4-49右上角的对话框模拟产生硬件中断,不会调用OB40。单击两次I0.2对应的小方框,OB40被允许执行,又可以用I0.0和I0.1产生的硬件中断来控制Q4.0了。
图4-50 OB1中激活和禁止硬件中断的程序
西门子S7-1200PLC模块重庆代理商