6ES7215-1AG40-0XB0维修
- 供应商
- 浔之漫智控技术(上海)有限公司
- 认证
- 品牌
- 西门子
- 型号
- 模块
- 产地
- 德国
- 联系电话
- 158****1992
- 全国服务热线
- 158****1992
- 经理
- 聂聪
- 所在地
- 上海市松江区广富林路4855弄88号3楼
- 更新时间
- 2023-10-26 04:00
simatics7—200硬件系统的配置方式采用整体式加积木式,即主机中包含一定数量的本机i/o,同时还可以扩展各种功能模块。一个完整的plc系统如图1所示。
图1 s7—200硬件系统组成
cpu模块又称为主机是系统的核心,它包括cpu、存储器、基本输入输出点和电源等。它实际就是一个完整的控制系统,可以单独完成一定的控制任务。主机i/o数量不能满足控制系统的要求时,用户可以根据需要扩展各种i/o模块,所能连接的扩展单元的数量和实际所能使用的i/o点数是由多种因素共同决定的。当需要完成某些特殊功能的控制任务时,可扩展特殊功能模块,以完成某种特殊的控制任务。利用网络接口,可以充分和方便地利用为simatics7—200系统的硬件和软件资源而开发和使用的一些设备,主要有编程设备、人机操作界面和网络设备等。
所有以上这些硬件设备,都在一个统一的工业软件平台上编程和运行,为了更好地管理和使用这些设备,s7—200plc配备了许多功能强大的专用功能指令,方便地实现各种控制目的。
高速计数器指令及举例
1. 高速计数器指令
高速计数器指令有两条:高速计数器定义指令hdef、高速计数器指令hsc。指令格式如表6-9所示。
(1)高速计数器定义指令hdef。指令指定高速计数器(hscx)的工作模式。工作模式的选择即选择了高速计数器的输入脉冲、计数方向、复位和起动功能。每个高速计数器只能用一条“高速计数器定义”指令。
(2)高速计数器指令hsc。根据高速计数器控制位的状态和按照hdef指令指定的工作模式,控制高速计数器。参数n指定高速计数器的号码。
表6-9 高速计数器指令格式
lad | ||
stl | hdef hsc,mode | hsc n |
功能说明 | 高速计数器定义指令hdef | 高速计数器指令hsc |
操作数 | hsc:高速计数器的编号,为常量(0~5)数据类型:字节 mode工作模式,为常量(0~11) 数据类型:字节 | n:高速计数器的编号,为常量(0~5)数据类型:字 |
eno=0的出错条件 | sm4.3(运行时间),0003(输入点冲突), 0004(中断中的非法指令),000a(hsc重复定义) | sm4.3 (运行时间),0001(hsc在hdef之前),0005(hsc/pls同时操作) |
2. 高速计数器指令的使用
(1)每个高速计数器都有一个32位当前值和一个32位预置值,当前值和预设值均为带符号的整数值。要设置高速计数器的新当前值和新预置值,必须设置控制字节(表6-7),令其第五位和第六位为1,允许更新预置值和当前值,新当前值和新预置值写入特殊内部标志位存储区。然后执行hsc指令,将新数值传输到高速计数器。当前值和预置值占用的特殊内部标志位存储区如表6-10所示。
表6-10 hsc0-hsc5当前值和预置值占用的特殊内部标志位存储区
要装入的数值 | hsc0 | hsc1 | hsc2 | hsc3 | hsc4 | hsc5 |
新的当前值 | smd38 | smd48 | smd58 | smd138 | smd148 | smd158 |
新的预置值 | smd42 | smd52 | smd62 | smd142 | smd152 | smd162 |
除控制字节以及新预设值和当前值保持字节外,还可以使用数据类型hc(高速计数器当前值)加计数器号码(0、1、2、3、4或5)读取每台高速计数器的当前值。因此,读取操作可直接读取当前值,但只有用上述hsc指令才能执行写入操作。
(2)执行hdef指令之前,必须将高速计数器控制字节的位设置成需要的状态,否则将采用默认设置。默认设置为:复位和起动输入高电平有效,正交计数速率选择4×模式。执行hdef指令后,就不能再改变计数器的设置,除非cpu进入停止模式。
(3)执行hsc指令时,cpu检查控制字节和有关的当前值和预置值。
3. 高速计数器指令的初始化
高速计数器指令的初始化的步骤如下:
(1)用扫描时接通一个扫描周期的特殊内部存储器sm0.1去调用一个子程序,完成初始化操作。因为采用了子程序,在随后的扫描中,不必再调用这个子程序,以减少扫描时间,使程序结构更好。
(2) 在初始化的子程序中,根据希望的控制设置控制字(smb37、smb47、smb137、smb147、smb157),如设置smb47=16#f8,则为:允许计数,写入新当前值,写入新预置值,更新计数方向为加计数,若为正交计数设为4×,复位和起动设置为高电平有效。
(3)执行hdef指令,设置hsc的编号(0-5),设置工作模式(0-11)www.dzkfw.com.cn。如hsc的编号设置为1,工作模式输入设置为11,则为既有复位又有起动的正交计数工作模式。
(4)用新的当前值写入32位当前值寄存器(smd38,smd48,smd58 ,smd138, smd148, smd158)。如写入0,则清除当前值,用指令movd 0,smd48实现。
(5)用新的预置值写入32位预置值寄存器(smd42 ,smd52, smd62, smd142 ,smd152, smd162)。如执行指令movd 1000,smd52,则设置预置值为1000。若写入预置值为16#00,则高速计数器处于不工作状态。
(6)为了捕捉当前值等于预置值的事件,将条件cv=pv中断事件(事件13)与一个中断程序相联系。
(7)为了捕捉计数方向的改变,将方向改变的中断事件(事件14)与一个中断程序相联系。
(8)为了捕捉外部复位,将外部复位中断事件(事件15)与一个中断程序相联系。
(9)执行全局中断允许指令(eni)允许hsc中断。
(10)执行hsc指令使s7-200对高速计数器进行编程。
(11)结束子程序。
【例6-4】高速计数器的应用举例。
(1)主程序
如图6-11所示,用扫描时接通一个扫描周期的特殊内部存储器sm0.1去调用一个子程序,完成初始化操作。
如图6-12所示,定义hsc1的工作模式为模式11(两路脉冲输入的双相正交计数,具有复位和起动输入功能),设置smb47=16#f8(允许计数,更新新当前值,更新新预置值,更新计数方向为加计数,若为正交计数设为4×,复位和起动设置为高电平有效)。hsc1的当前值smd48清零,预置值smd52=50,当前值 = 预设值,产生中断(中断事件13),中断事件13连接中断程序int-0。
(3)中断程序int-0,如图6-13所示。
movd +0 smd48 // hsc1的当前值清0
movb 16#c0 smb47 //只写入一个新当前值,
预置值不变,计数方向不变,
hsc1允许计数
hsc 1 //执行hsc1指令
展开全文