STEP 7-MicroWIN SMART 西门子200smartPLC和编码器进行高速计数程序学习
固件版本V1.0 的CPU SR20、 CPU SR40、 CPUST40 、CPU SR60 和 CPU ST60可以使用4个60kHz单相高速计数器或2个40kHz的两相高速计数器,而CPU CR40可以使用4个30kHz单相高速计数器或2个20kHz的两相高速计数器。
固件版本V2.0 到V2.2的标准型CPU(ST/SR20、ST/SR30、ST/SR40、ST/SR60)可以使用4个200kHz单相高速计数器或2个100kHz的两相高速计数器,而紧凑型CPU CR40、CR60可以使用4个100kHz单相高速计数器或2个50kHz的两相高速计数器。
固件版本V2.3 的标准型CPU支持6个高速计数器,具体请参考表1和表2。
表1 标准CPU高速计数器
标准型CPU 参数 | CPU SR20 AC/DC/Relay |
CPU ST20 DC/DC/DC |
CPU SR30 AC/DC/Relay |
CPU ST30 DC/DC/DC |
CPU ST40 DC/DC/DC | CPU SR40 AC/DC/Relay | CPU ST60 DC/DC/DC |
CPU SR60 AC/DC/Relay |
---|---|---|---|---|---|---|---|---|
高速计数器 | 6(全部) | 6(全部) | 6(全部) | 6(全部) | ||||
——单相/双相 | 4 @ 200 KHz +2 @30 KHz | 5 @ 200 KHz +1 @30 KHz | 4 @ 200 KHz +2 @30 KHz | 4 @ 200 KHz +2 @30 KHz | ||||
——A/B相 | 2 @ 100 KHz+ 2@20Kz | 3 @ 100 KHz+ 1@20Kz | 2 @ 100 KHz+ 2@20Kz | 2 @ 100 KHz+ 2@20Kz |
表2 经济型CPU参数
经济型CPU 参数 | CPU CR20s AC/DC/Relay |
CPU CR30s AC/DC/Relay |
CPU CR40s AC/DC/Relay | CPU CR60s AC/DC/Relay |
---|---|---|---|---|
高速计数器 | 4(全部) | |||
——单相/双相 | 4 @100 KHz | 4 @ 100 KHz | 4 @ 100 KHz | 4 @ 100 KHz |
——A/B相 | 2 @ 50 KHz | 2 @ 50 KHz | 2 @ 50 KHz | 2 @ 50 KHz |
计数器共有四种基本类型:带有内部方向控制的单相计数器,带有外部方向控制的单相计数器,带有两个时钟输入的双相计数器和A/B相正交计数器。
表3. 高速计数器的模式及输入点:
模式 | 描述 | 输入点 | ||
---|---|---|---|---|
HSC0 | I0.0 | I0.1 | I0.4 | |
HSC1 | I0.1 | |||
HSC2 | I0.2 | I0.3 | I0.5 | |
HSC3 | I0.3 | |||
HSC4 | I0.6 | I0.7 | I1.2 | |
HSC5 | I1.0 | I1.1 | I1.3 | |
0 | 带有内部方向控制的单相计数器 | 时钟 | ||
1 | 时钟 | 复位 | ||
3 | 带有外部方向控制的单相计数器 | 时钟 | 方向 | |
4 | 时钟 | 方向 | 复位 | |
6 | 带有增减计数时钟的双相计数器 | 增时钟 | 减时钟 | |
7 | 增时钟 | 减时钟 | 复位 | |
9 | A/B相正交计数器 | 时钟A | 时钟B | |
10 | 时钟A | 时钟B | 复位 |
表4. 高速计数器的寻址
高速计数器号 | HSC0 | HSC1 | HSC2 | HSC3 | HSC4 | HSC5 |
---|---|---|---|---|---|---|
新当前值(新 CV) | SMD38 | SMD48 | SMD58 | SMD138 | SMD148 | SMD158 |
新预置值(新 PV) | SMD42 | SMD52 | SMD62 | SMD142 | SMD152 | SMD162 |
当前计数值(仅读出) | HC0 | HC1 | HC2 | HC3 | HC4 | HC5 |
高速计数器的具体编程及相关的中断和其它参数,请参见《S7-200 SMART 系统手册》,上面有详细的阐述及例程。
下面有编程向导
高速输入降噪
要正确操作高速计数器,可能需要执行以下一项或两项操作:
● 调整 HSC 通道所用输入通道的“系统块”数字量输入滤波时间。在 S7-200 SMART CPU 中。在 HSC 通道对脉冲进行计数前应用输入滤波。这意味着,如果 HSC 输入脉冲以输入滤波过滤掉的速率发生,则 HSC 不会在输入上检测到任何脉冲。请务必将 HSC 的每路输入的滤波时间组态为允许以应用需要的速率进行计数的值。包括方向和复位输入。下表显示可检测到的每种输入滤波组态的最大输入频率。
表5.输入滤波设置和可检测到的最大输入频率
输入滤波时间 | 可检测到的最大频率 |
---|---|
0.2μs | 200KHz (标准型CPU) 100KHz(紧凑型或经济型CPU) |
0.4μs | 200KHz (标准型CPU) 100KHz(紧凑型或经济型CPU) |
0.8μs | 200KHz (标准型CPU) 100KHz(紧凑型或经济型CPU) |
1.6μs | 200KHz (标准型CPU) 100KHz(紧凑型或经济型CPU) |
3.2μs | 156KHz (标准型CPU) 100KHz(紧凑型或经济型CPU) |
6.4μs | 78kHz |
12.8μs | 39 kHz |
0.2ms | 2.5kHz |
0.4ms | 1.25kHz |
0.8ms | 625 Hz |
1.6ms | 312 Hz |
3.2ms | 156 Hz |
6.4ms | 78 Hz |
12.8ms | 39 Hz |
输入逻辑电平有效电压范围
表6. 输入逻辑电平有效电压范围
CPU型号 | 逻辑1信号(最小) | 逻辑0信号(最大) |
SR、CR、CRS | 2.5mA时 15VDC | 1mA时 5VDC |
ST20/30 | I0.0-I0.3:8mA时 4VDC I0.6-I0.7:8mA时 4VDC 其他:2.5mA时15VDC |
I0.0-I0.3:1mA时 1VDC I0.6-I0.7:1mA时 1VDC 其他:1mA时5VDC |
●加入下拉电阻是为了使输入输出信号达到其逻辑电平有效范围。如果设备的输出是集电极开路晶体管,则可能出现这种情况。晶体管关闭时,没有任何因素将信号驱动为低电平状态。信号将转换为低电平状态,但所需时间将取决于电路的输入电阻和电容。这种情况可能导致脉冲丢失。可通过将下拉电阻接到输入信号的方法避免这种情况,如下图所示。由于 CPU 的输入电压是24V,因此电阻的额定0功率必须为高功率。100 欧 5 瓦的电阻是一个合适的选择。
图1. 集电极开路HSC输入驱动接线下拉电阻
高速计数器指令向导
在 Micro/WIN SMART 中的命令菜单中选择 Tools(工具)> Wizards(向导)中选择 High Speed Counter(高速计数器向导) ,也可以在项目树中选择 Wizards(向导)文件夹中的 High Speed Counter(高速计数器向导)按钮,如图 1所示。
图 1.选择 HSC 向导
步骤一:选择 HSC 编号,如图 2所示。
图 2.选择计数器编号
步骤二:为计数器命名,在左侧树形目录中选择“高速计数器”,如图 3所示。
图 3.高速计数器命名
步骤三:选择计数器模式,详细信息请见“表1.高速计数器的模式及输入点”。
图 4.选择高速计数器模式
步骤四:配置初始化信息。
图 5. HSC 初始化选项
在上图中:
-
为初始化子程序命名,或者使用默认名称。
-
设置计数器预置值:可以为整数、双字地址或符号名:如 5000、VD100、PV_HC0。用户可使用全局符号表中双字整数对应的符号名。如果用户输入的符号名尚未定义,点击' Generate (生成)’后会看到:
这个提示框显示:“这不是定义的全局符号。您希望定义符号吗”,点击“是”
填入地址和注释,注意:地址必须为双字地址, 注释可以不填。
-
设置计数器初始值:可以为整数、双字地址或符号名:5000、VD100、CV_HC0。
-
初始化计数方向:增,减。
-
对于带外部复位端的高速计数器,可以设定复位信号为高电平有效或者低电平有效。
-
使用A/B相正交计数器时,可以将计数频率设为1倍速或4倍速。使用非A/B相正交计数器时,此项为虚。
-
S7-200 SMART 均不支持带外部启动端的高速计数器,因此此项为虚。
注意:所谓“高/低电平有效”指的是在物理输入端子上的有效逻辑电平,即可以使 LED 灯点亮的电平。这取决于源型/漏型输入接法,并非指实际电平的高、低。
步骤五:配置中断事件,如图 6所示。
图 6.配置中断
如图 6所示,一个高速计数器最多可以有 3 个中断事件,在白色方框中填写中断服务程序名称或者使用默认名称:
在这里配置的中断事件并非必须,系由用户根据自己的控制工艺要求选用。
-
外部复位输入有效值时中断,如果使用的高速计数器模式不具有外部复位端,则此项为虚。
-
方向控制输入状态改变时的中断,有以下 3 种情况会产生该中断:
-
单项计数器的内部或外部方向控制位改变瞬间
-
双相计数器增、减时钟交替的瞬间
-
A/B相脉冲相对相位(超前或滞后)改变时瞬间
-
-
当前值等于预置值时产生的中断,通过向导,可以在该中断的服务程序中重新设置高速计数器的参数,如预置值、当前值。一个这样的过程称为'一步'。
步骤六:配置 HSC 步数,如图 7所示,最多可设置 10 步。
图 7. 配置 HSC 步数
步骤七:定义高速计数器每一步的操作,如图 8所示:
图 8. HSC 第一步
在这里配置的是当前值等于设定值中断的服务程序中的操作:
-
向导会自动为当前值等于预置值匹配一个新的中断服务程序,用户可以对其重新命名,或者使用默认的名称。
-
勾选后,用户在右侧输入新的预置值。
-
勾选后,用户在右侧输入新的当前值。
-
如果选用的高速计数器模式有内部方向控制位。
-
使用相同的方法完成其余两步的设置
步骤八:完成向导,如图 9所示:
图 9. 完成向导
点击向导对话框左侧树形目录中的选项“组件(Components)”可以看到此时向导生成的子程序和中断程序名称及描述,点击“生成(Generate)”按钮,完成向导。
注意:Micro/WIN SMART 高速计数器指令向导采用树形目录的形式,用户可以直接在目录树中选择相应选项进行设置,这种方式便于用户在完成指令向导后根据实际需求进行快速修改。
步骤九:调用子程序:
注意:
-
HSC_INIT 为初始化子程序,请在主程序块中使用 SM0.1 或一条边沿触发指令调用一次此子程序。
-
向导生成的中断服务程序及子程序都未上锁,用户可以根据自己的控制需要进行修改。
文章来源:综合网络,本文系网络转载,版权归原作者所有。但因转载众多,无法确认真正原始作者。