固件版本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 SR20AC/DC/RelayCPU ST20DC/DC/DCCPU SR30AC/DC/RelayCPU ST30DC/DC/DCCPU ST40 DC/DC/DCCPU SR40 AC/DC/RelayCPU ST60DC/DC/DCCPU SR60AC/DC/Relay高速计数器6(全部)6(全部)6(全部)6(全部)——单相/双相4 @ 200 KHz +2 @30 KHz5 @ 200 KHz +1 @30 KHz4 @ 200 KHz +2 @30 KHz4 @ 200 KHz +2 @30 KHz——A/B相2 @ 100 KHz+ 2@20Kz3 @ 100 KHz+ 1@20Kz2 @ 100 KHz+ 2@20Kz2 @ 100 KHz+ 2@20Kz表2 经济型CPU参数
经济型CPU 参数CPU CR20sAC/DC/RelayCPU CR30sAC/DC/RelayCPU CR40s AC/DC/RelayCPU CR60sAC/DC/Relay高速计数器4(全部)——单相/双相4 @100 KHz4 @ 100 KHz4 @ 100 KHz4 @ 100 KHz——A/B相2 @ 50 KHz2 @ 50 KHz2 @ 50 KHz2 @ 50 KHz计数器共有四种基本类型:带有内部方向控制的单相计数器,带有外部方向控制的单相计数器,带有两个时钟输入的双相计数器和A/B相正交计数器。
表3. 高速计数器的模式及输入点:
模式描述输入点 HSC0I0.0I0.1I0.4HSC1I0.1HSC2I0.2I0.3I0.5HSC3I0.3HSC4I0.6I0.7I1.2HSC5I1.0I1.1I1.30带有内部方向控制的单相计数器时钟1时钟复位3带有外部方向控制的单相计数器时钟方向4时钟方向复位6带有增减计数时钟的双相计数器增时钟减时钟7增时钟减时钟复位9A/B相正交计数器时钟A时钟B10时钟A时钟B复位表4. 高速计数器的寻址
高速计数器号HSC0HSC1HSC2HSC3HSC4HSC5新当前值(新 CV)SMD38SMD48SMD58SMD138SMD148SMD158新预置值(新 PV)SMD42SMD52SMD62SMD142SMD152SMD162当前计数值(仅读出)HC0HC1HC2HC3HC4HC5高速计数器的具体编程及相关的中断和其它参数,请参见《S7-200 SMART 系统手册》,上面有详细的阐述及例程。
下面有编程向导
高速输入降噪要正确操作高速计数器,可能需要执行以下一项或两项操作:
● 调整 HSC 通道所用输入通道的“系统块”数字量输入滤波时间。在 S7-200 SMART CPU 中。在 HSC 通道对脉冲进行计数前应用输入滤波。这意味着,如果 HSC 输入脉冲以输入滤波过滤掉的速率发生,则 HSC 不会在输入上检测到任何脉冲。请务必将 HSC 的每路输入的滤波时间组态为允许以应用需要的速率进行计数的值。包括方向和复位输入。下表显示可检测到的每种输入滤波组态的最大输入频率。
表5.输入滤波设置和可检测到的最大输入频率
输入滤波时间可检测到的最大频率0.2μs200KHz (标准型CPU)100KHz(紧凑型或经济型CPU)0.4μs200KHz (标准型CPU)100KHz(紧凑型或经济型CPU)0.8μs200KHz (标准型CPU)100KHz(紧凑型或经济型CPU)1.6μs200KHz (标准型CPU)100KHz(紧凑型或经济型CPU)3.2μs156KHz (标准型CPU)100KHz(紧凑型或经济型CPU)6.4μs78kHz12.8μs39 kHz0.2ms2.5kHz0.4ms1.25kHz0.8ms625 Hz1.6ms312 Hz3.2ms156 Hz6.4ms78 Hz12.8ms39 Hz输入逻辑电平有效电压范围表6. 输入逻辑电平有效电压范围
| CPU型号 | 逻辑1信号(最小) | 逻辑0信号(最大) |
| SR、CR、CRS | 2.5mA时 15VDC | 1mA时 5VDC |
| ST20/30 | I0.0-I0.3:8mA时 4VDCI0.6-I0.7:8mA时 4VDC其他:2.5mA时15VDC | I0.0-I0.3:1mA时 1VDCI0.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所示。
步骤一:选择 HSC 编号,如图 2所示。
步骤二:为计数器命名,在左侧树形目录中选择“高速计数器”,如图 3所示。
步骤三:选择计数器模式,详细信息请见“表1.高速计数器的模式及输入点”。
步骤四:配置初始化信息。
在上图中:
为初始化子程序命名,或者使用默认名称。
设置计数器预置值:可以为整数、双字地址或符号名:如 5000、VD100、PV_HC0。用户可使用全局符号表中双字整数对应的符号名。如果用户输入的符号名尚未定义,点击‘ Generate (生成)’后会看到:
这个提示框显示:“这不是定义的全局符号。您希望定义符号吗”,点击“是”
填入地址和注释,注意:地址必须为双字地址, 注释可以不填。
设置计数器初始值:可以为整数、双字地址或符号名:5000、VD100、CV_HC0。
初始化计数方向:增,减。
对于带外部复位端的高速计数器,可以设定复位信号为高电平有效或者低电平有效。
使用A/B相正交计数器时,可以将计数频率设为1倍速或4倍速。使用非A/B相正交计数器时,此项为虚。
S7-200 SMART 均不支持带外部启动端的高速计数器,因此此项为虚。
注意:所谓“高/低电平有效”指的是在物理输入端子上的有效逻辑电平,即可以使 LED 灯点亮的电平。这取决于源型/漏型输入接法,并非指实际电平的高、低。
步骤五:配置中断事件,如图 6所示。
如图 6所示,一个高速计数器最多可以有 3 个中断事件,在白色方框中填写中断服务程序名称或者使用默认名称:
在这里配置的中断事件并非必须,系由用户根据自己的控制工艺要求选用。
外部复位输入有效值时中断,如果使用的高速计数器模式不具有外部复位端,则此项为虚。
方向控制输入状态改变时的中断,有以下 3 种情况会产生该中断:
单项计数器的内部或外部方向控制位改变瞬间
双相计数器增、减时钟交替的瞬间
A/B相脉冲相对相位(超前或滞后)改变时瞬间
当前值等于预置值时产生的中断,通过向导,可以在该中断的服务程序中重新设置高速计数器的参数,如预置值、当前值。一个这样的过程称为‘一步‘。
步骤六:配置 HSC 步数,如图 7所示,最多可设置 10 步。
步骤七:定义高速计数器每一步的操作,如图 8所示:
在这里配置的是当前值等于设定值中断的服务程序中的操作:
向导会自动为当前值等于预置值匹配一个新的中断服务程序,用户可以对其重新命名,或者使用默认的名称。
勾选后,用户在右侧输入新的预置值。
勾选后,用户在右侧输入新的当前值。
如果选用的高速计数器模式有内部方向控制位。
使用相同的方法完成其余两步的设置
步骤八:完成向导,如图 9所示:
点击向导对话框左侧树形目录中的选项“组件(Components)”可以看到此时向导生成的子程序和中断程序名称及描述,点击“生成(Generate)”按钮,完成向导。
注意:Micro/WIN SMART 高速计数器指令向导采用树形目录的形式,用户可以直接在目录树中选择相应选项进行设置,这种方式便于用户在完成指令向导后根据实际需求进行快速修改。
步骤九:调用子程序:
注意:
HSC_INIT 为初始化子程序,请在主程序块中使用 SM0.1 或一条边沿触发指令调用一次此子程序。
向导生成的中断服务程序及子程序都未上锁,用户可以根据自己的控制需要进行修改。
文章来源:综合网络,本文系网络转载,版权归原作者所有。