西门子S7-1200CPU1215C中央处理单元西门子中国总代理 西门子授权代理商
- 供应商
- 浔之漫智控技术(上海)有限公司
- 认证
- 报价
- ¥888.00元每台
- 西门子
- 西门子代理商
- 西门子CPU
- 西门子plc
- 德国
- 全新原装
- 全国服务热线
- 19514718569
- 经理
- 吴悦
- 所在地
- 上海市松江区石湖荡镇塔汇路755弄29号1幢一层A区213室
- 更新时间
- 2024-01-07 08:08
西门子s7-1200cpu1215c中央处理单元西门子中国总代理 西门子授权代理商
西门子s7-1200cpu1215c中央处理单元西门子中国总代理 西门子授权代理商
西门子s7-1200cpu1215c中央处理单元西门子中国总代理 西门子授权代理商
s7-400 cpu可以使用的时间中断 ob(ob10~ob17)的个数与cpu的型号有关。绝大多数s7-300cpu只能使用ob10。
可以设置在某一特定的日期时间产生一次时间中断,也可以设置从设定的日期时间开始,周期性地重复产生中断,例如每分钟、每小时、每天、每周、每月、每年产生一次时间中断。可以用专用的sfc28~sfc30设置、取消和激活时间中断。
为了启动时间中断,用户首先必须设置时间中断的参数,然后再激活它。可以用组态或编程的方法来启动时间中断。
1.基于硬件组态的时间中断
要求在到达设置的日期和时间时,用q4.0自动起动某台设备。用新建项目向导生成一个名为“ob10_1”的项目(见随书光盘中的同名例程),cpu模块的型号为cpu315-2dp。
打开硬件组态工具hwconfig(见图4-43),双击机架中的cpu,打开cpu的属性对话框。在“时刻中断”选项卡中,设置执行起动设备的日期和时间,执行的方式为“一次”。用复选框激活中断,按“确定”按钮结束设置。单击工具栏上的壁按钮,保存和编译组态信息。
在simatic管理器中生成ob10,下面是用语句表编写的ob10的程序,设置的时间到时,将需要起动的设备对应的输出点置位:
打开plcsim,生成qb4的视图对象。下载所有的块和系统数据后,将仿真plc切换到run-p模式。时间中断在plc暖启动或热启动时被激活,在plc启动过程结束之后才能执行。达到设置的日期和时间时,可以看到q4.0变为1状态。
做实验时应设置比当前的日期时间稍晚一点的日期和时间,以免等待的时间太长。
2. 用 sfc控制时间中断
除了在硬件组态工具中设置和激活时间中断之外,也可以在用户程序中调用sfc来设置和激活时间中断。用新建项目向导生成一个名为“ob10_2”的项目(见随书光盘中的同名例程)。在ob1中调用sfc31“”来查询时间中断的状态(见图4-44),读取的状态字用mw8保存。
iec功能fc3“d_tod_td”用于合并日期和时间值,它在程序编辑器左边窗口的文件夹“\库\ standard library\ iec function blocks”中。首先生成 ob1的临时局部变量(temp)“dti”,其数据类型为date_and_time,“d_tod_td”的执行结果用dt1保存。
在i0.0的上升沿,调用sfc28“set_tint”和sfc30“act_tint”分别来设置和激活时间中断 ob10。在i0.1的上升沿,调用sfc 29“can_tint”来禁止时间中断。
各sfc的参数中的ret_val是执行时可能出现的错误代码,为0时无错误。ob_nr是组织块编号,sfc28“set_tint”用来设置时间中断,它的参数sdt是开始产生中断的日期和时间。period用来设置执行的方式,w#16#0201表示每分钟产生一次时间中断。
1.中断过程
中断处理用来实现对特殊内部事件或外部事件的快速响应。如果没有中断,cpu循环执行组织块0b1。因为除背景组织块0b90以外,0b1的中断优先级zui低,cpu检测到中断源的中断请求时,操作系统在执行完当前程序的当前指令(即断点处)后,立即响应中断。cpu暂停正在执行的程序,调用中断源对应的中断组织块(ob)来处理。执行完中断组织块后,返回被中断的程序的断点处继续执行原来的程序。
有中断事件发生时,如果没有下载对应的组织块,cpu将会进入stop模式。即使生成和下载一个空的组织块,出现对应的中断事件时,cpu也不会进入stop模式。
plc的中断源可能来自uo模块的硬件中断,或者来自cpu模块内部的软件中断,例如时间中断、延时中断、循环中断和编程错误引起的中断。
一个ob的执行被另一个ob中断时,操作系统对现场进行保护。被中断的ob的局部数据压入l堆栈(局部数据堆栈),被中断的断点处的现场信息保存在i堆栈(中断堆栈)和b堆栈(块堆栈)中。中断程序不是由逻辑块调用,而是在中断事件发生时由操作系统调用。因为不能预知系统何时调用中断程序,中断程序不能改写其他程序中可能正在使用的存储器,中断程序应尽可能地使用局部变量。
编写中断程序时应遵循“越短越好”的格言,以减少中断程序的执行时间,减少对其他事件处理的延迟,否则可能引起主程序控制的设备操作异常。
2.组织块的分类
组织块只能由操作系统启动,它由变量声明表和用户编写的控制程序组成。
(1)启动组织块
启动组织块用于系统初始化,cpu上电或操作模式切换到run时,s7-300执行ob100,s7-400根据组态的启动方式执行ob100~ob102中的一个。
(2)循环执行的ob1
需要循环执行的程序存放在ob1中,执行完后又开始新的循环。(3)定期执行的组织块
定期执行的组织块包括时间中断组织块 ob10~ob17和循环中断组织块ob30~ob38,可以根据设定的日期时间或时间间隔执行中断程序。
(4)事件驱动的组织块
延时中断组织块 ob20~ob23在过程事件出现后延时一定的时间再执行中断程序硬件中断组织块ob40~ob47用于需要快速响应的过程事件,事件出现时马上中止当前正在执行的程序,执行对应的中断程序。异步错误中断组织块ob80~0b87和同步错误中断组织块ob121、ob122用来决定在出现错误时系统如何响应。
3.中断的优先级
中断的优先级也就是组织块的优先级,如果在执行中断程序(组织块)时,又检测到一个中断请求,cpu将比较两个中断源的中断优先级。如果优先级相同,按照产生中断请求的先后次序进行处理。如果后者的优先级比正在执行的ob的优先级高,将中止当前正在处理的ob,改为执行较高优先级的ob。这种处理方式称为中断程序的嵌套调用。
下面是优先级的顺序(后面的比前面的优先)背景循环、主程序扫描循环、时间中断、时间延时中断、循环中断、硬件中断、多处理器中断、i/o冗余错误、异步故障(ob80~87)、启动和cpu 冗余,背景循环的优先级zui低。
s7-300的组织块的优先级是固定的,可以用step7修改s7-400cpu下述组织块的优先级ob10~ob47(优先级2~23),ob70~0b72(优先级25或28,只适用于h系列cpu),以及在run模式下的ob80~ob88(见附表b-1)。通常情况下组织块的编号越大(ob90除外),优先级越高。具有相同优先级的ob按启动它们的事件出现的先后顺序处理。被同步错误启动的ob121和ob122的优先级与错误出现时正在执行的ob的优先级相同。
生成逻辑块0b、fb和fc时,同时生成临时局部变量数据,cpu的局部数据区按优先级划分。可以在s7-400的cpu模块属性对话框的“存储器”选项卡中,改变每个优先级的局部数据区的大小。将优先级赋值为0,或分配小于20b的局部数据给某一个优先级,可以取消相应的中断0b。
4.对中断的控制
时间中断和延时中断有专用的允许处理中断(或称激活、使能中断)和禁止中断的系统功能(sfc)。
sfc39“dis_int”用来禁止中断和异步错误处理,可以禁止所有的中断,有选择地禁止某些优先级范围的中断,或者只禁止指定的某个中断。
sfc40“en_int”用来激活(使能)新的中断和异步错误处理,激活中断是指允许处理中断,做好了在中断事件出现时执行对应的组织块的准备。可以全部允许或有选择地允许。
sfc41“dis_airt”延迟处理比当前优先级更高的中断和异步错误,直到用sfc42允许处理中断或当前的ob执行完毕。sfc42“en_airt”用来允许立即处理被sfc41暂时禁止的中断和异步错误,sfc42和sfc41配对使用。