高速计数器指令向导
- 格式:docx
- 大小:436.53 KB
- 文档页数:11
高速计数器计数器输入/输出操作数数据类型N常数(0,1,2,3,4或5)字内存范围错误S7-200 CPU指令支持SIMATIC/国际助记符数据范围CPU内存中的指令大小编址内存高速计数器(HSC)指令根据HSC特殊内存位的状态配置和控制高速计数器。
参数N指定高速计数器的号码。
高速计数器最多可配置为十二种不同的操作模式。
每台计数器在功能受支持的位置有专用时钟、方向控制、复原和起始输入。
对于双相计数器,两个时钟均可按最高速度运行。
在正交模式中,您可以选择一倍\(1x)或四倍(4x)的最高计数速率。
所有的计数器按最高速率运行,而不会相互干扰。
注释:CPU 221和CPU 222支持4台高速计数器 (HSC0、HSC3、HSC4、HSC5)CPU 221和CPU 222不支持HSC1和HSC2CPU 224、CPU224XP、CPU 226支持6台高速计数器 (HSC0至HSC5)您可以为每台高速计数器使用一条"高速计数器定义"指令。
文档光盘中"提示与技巧"中的第4条提示和第29条提示提供使用高速计数器的程序。
设置ENO = 0的错误条件:0001 HSC在HDEF之前0005 HSC/PLS同步程序举例LAD FBDSTL NETWORK 1 // 主程序// 首次扫描时,调用SBR_0LD SM0.1CALL SBR_0NETWORK 1 // 子程序0开始// 配置HSC1LD SM0.1 // 首次扫描时MOVB 16#F8 SMB47 // 配置HSC1:// - 启用计数器// - 写入新当前值// - 写入新预设值// - 将初始方向设为向上计数// - 选择现用水平高的起始和复原输入// - 选择4x模式HDEF 1 11 // 将HSC1配置为正交模式,// 具有复原和起始输入功能MOVD +0 SMD48 // 清除HSC1的当前值MOVD +50 SMD52 // 将HSC1预设值设为50ATCH INT_0 13 // HSC1当前值 = 预设值(事件13)// 附加在中断例行程序INT_0上ENI// 全局中断启用HSC 1 // 程序HSC1NETWORK 1 // 中断0开始LD SM0.0MOVD +0 SMD48 // 清除HSC1的当前值MOVB 16#C0 SMB47 // 选择仅写入一个新当前值,// 使HSC1保持启用状态HSC 1 // 程序HSC1另请参阅:识别高速计数器指令HSC向导HDEF指令。
高速计数器的使用向导在STEP 7 MicroWIN 菜单中点选—工具—指令向导---HSC(配置高速计数器)第一步,项目编译无错误后,选择HSC编号和模式,详细信息请见.高速计数器的模式及输入点。
高速计数器及模式选择配置初始化信息为初始化子程序命名,或者使用默认名称设置计数器预置值:可以为整数、双字地址或符号名:如5000、VD100、PV_HC1。
用户可使用全局符号表中双字整数对应的符号名。
地址必须为双字地址,注释可以不填设置计数器初始值:可以为整数、双字地址或符号名:5000初始化计数方向:增,减。
对于带外部复位端的高速计数器,可以设定复位信号为高电平有效或者低电平有效。
对于带外部启动端的高速计数器,可以设定启动信号为高电平有效或者低电平有效。
如果使用的高速计数器或工作模式没有外部复位或启动端,则对应选项为虚。
使用A/B相正交计数器时,可以将计数频率设为1倍速或4倍速。
使用非A/B相正交计数器时,此项为虚。
程序例子// 主程序:// 在主程序中,首先将输出Q0.0置,0,因为这是脉冲输出功能的需要。
再初始化高速计// 数器HSC0,然后调用子程序0和1。
// HSC0起动后具有下列特性:可更新CV和PV值,正向计数。
// 当脉冲输出数达到SMD72中规定的个数后,程序就终止。
// 主程序LD SM0.1 // 首次扫描标志(SM0.1=1)。
R Q0.0,1 // 脉冲输出Q0.0复位(Q0.0=0)。
MOVB 16#F8,SMB37 // 装载HSC0的控制位:// 激活HSC0,可更新CV,可更新PV,// 可改变方向,正向计数。
// HSC指令用这些控制位来组态HSC。
MOVD 0,SMD38// HSC0当前值(CV)为0。
MOVD 1000,SMD42 // HSC0的第一次设定值(PV)为1000。
HDEF 0,0 // HSC0定为模式0。
CALL 0 // 调用子程序0。
CALL 1 // 调用子程序1。
编者注:此文档主要针对西门子S7-200系列中的CPU226CN的高速计数器模块,内容包括S7-200实验平台的搭建、CPU226CN高速计数器部分的解决方案和高速计数器部分的简单程序讲解。
建议:首先请简单阅读用户手册相关内容,再做此实验。
目录:1、S7-200实验平台的搭建 (2)1.1实验材料的准备 (2)1.2安装microwinv4.0 (2)1.3对实验器材进行连线安装 (3)2、CPU226CN高速计数器部分的解决方案 (4)2.1 配置通讯 (4)2.2 配置高速计数器,使用高速计数器向导 (6)2.3 完善高速计数器程序,实现高速计数功能 (10)2.4 高速计数程序的简单描述 (13)2.5 修改程序参数,实现I0.2上升沿清零 (17)3、实验小结 (18)1. S7-200实验平台的搭建进行本次实验的主要目的是要了解S7-200系列中的CPU226CN CPU的高速计数功能以及配置使用方法。
在进行实验以前首先要将实验中要用到的软件和硬件做一个详细的准备,避免在实验过程中因为缺少材料而导致实验失败。
1.1 实验材料的准备硬件:z CPU226CN模块(6ES7 216-2BD23-OX8)z S7-200系列CPU编程电缆z编程计算机(带9针串口)z24V开关电源z编码器1-2个软件:z microwinv4.01.2 安装microwinv4.0运行microwinv4.0的安装程序,正常安装。
安装过程中程序会提示选择将来要使用的通讯方式,如下图所示其默认选项为“PC/PPI cable(PPI)”,即计算机串口对PLC的PPI的通讯方式,此选项可以视实际实验时选用的通讯方式自由选择。
选择好通讯方式后完成程序安装,并重新启动计算机。
1.3 对实验器材进行连线安装西门子CPU226CN的进线电压为交流220V,在对CPU进行接线时一定要按照西门子提供的接线方法规范接线,西门子CPU226CN的接线图如下所示完成连接所有硬件的线路并检查无误后,接通电源。
s7-200高速计数器详细解说1.高速计数器指令普通计数器受CPU扫描速度的影响,是按照顺序扫描的方式进行工作。
在没个扫描周期中,对计数脉冲只能进行一次累加;对于脉冲信号的频率比PLC的扫描频率高时,如果仍采用普通计数器进行累加,必然会丢失很对输入脉冲信号。
在PLC中,对比扫描频率高的输入信号的计数可也使用高速计数器指令来实现。
1.高速计数器指令(1)定义高速计数器指令HDEFHDE指令功能是为某个要使用的高速计数器选定一种工作模式。
每个高速计数器在使用前,都要用HDEF指令来定义工作模式,并且只能用一次。
它有两个输入端:HSC为要使用的高速计数器编号,数据类型为字节型,数据范围为0~5的常数,分别对应HC0~ HC5;MOCE为高速计数的工作模式,数据类型为字节型,数据范围为0~11的常数,分别对应12种工作模式。
当准许输入使能EN有效时,为指定的高速计数器HSC定义工作模式MODE。
(2)执行高速计数指令HSCHSC指令功能功能是根据与高速计数器相关的特殊继电器确定在控制方式和工作状态,使高速计数器的设置生效,按照指令的工作模式的工作模式执行计数操作。
它有一个数据输入端N:N为高速计数器的编号,数据类型的字型,数据范围为0~5的常数,分别对应高速计数器HC0~HC5.当准许输入EN使能有效时,启动N号高速计数器工作。
2.高速计数器的输入端高速计数器的输入端不像普通输入端那样有用户定义,而是由系统指定的输入点输入信号,每个高速计数器对它所支持的脉冲输入端,方向控制,复位和启动都有专用的输入点,通过比较或中断完成预定的操作。
每个高速计数器专用的输入点如表高速计数器的输入点3.高速计数器的状态字节系统为每个高速计数器都在特殊寄存器区SMB提供了一个状态字节,为了监视高速计数器的工作状态,执行由高速计数器引用的中断事件,其格式如表。
只有执行高速计数器的中断程序时,状态字节的状态位才有效。
4.高速计数器的工作模式高速计数器有12种不同的工作模式(0`~11),分为4类。
1、概述S7-200 有两个置PTO/PWM 发生器,用以建立高速脉冲串(PTO)或脉宽调节(PWM)信号波形。
当组态一个输出为PTO 操作时,生成一个50%占空比脉冲串用于步进电机或伺服电机的速度和位置的开环控制。
置PTO功能提供了脉冲串输出,脉冲周期和数量可由用户控制。
但应用程序必须通过PLC内置I/O 提供方向和限位控制。
为了简化用户应用程序中位控功能的使用,STEP7--Micro/WIN 提供的位控向导可以帮助您在几分钟内全部完成PWM,PTO或位控模块的组态。
向导可以生成位置指令,用户可以用这些指令在其应用程序中为速度和位置提供动态控制。
2、开环位控用于步进电机或伺服电机的基本信息借助位控向导组态PTO 输出时,需要用户提供一些基本信息,逐项介绍如下:⑴最大速度(MAX_SPEED)和启动/停止速度(SS_SPEED)图1是这2 个概念的示意图。
MAX_SPEED是允许的操作速度的最大值,它应在电机力矩能力的范围。
驱动负载所需的力矩由摩擦力、惯性以及加速/减速时间决定。
图1 最大速度和启动/停止速度示意SS_SPEED:该数值应满足电机在低速时驱动负载的能力,如果SS_SPEED的数值过低,电机和负载在运动的开始和结束时可能会摇摆或颤动。
如果SS_SPEED的数值过高,电机会在启动时丢失脉冲,并且负载在试图停止时会使电机超速。
通常,SS_SPEED 值是MAX_SPEED 值的5%至15%。
⑵加速和减速时间加速时间ACCEL_TIME:电机从SS_SPEED速度加速到MAX_SPEED速度所需的时间。
减速时间DECEL_TIME:电机从MAX_SPEED速度减速到SS_SPEED速度所需要的时间。
图2 加速和减速时间加速时间和减速时间的缺省设置都是1000毫秒。
通常电机可在小于1000 毫秒的时间工作。
参见图2。
这2个值设定时要以毫秒为单位。
注意:电机的加速和失速时间要过测试来确定。
【S7-1200】高速计数功能简介(2013-10-29 11:45:41)转载▼分类:S7-1200/15001高速计数器S7-1200 CPU提供了最多6个(1214C)高速计数器,其独立于CPU的扫描周期进行计数。
可测量的单相脉冲频率最高为100KHz,双相或A/B相最高为30KHz,除用来计数外还可用来进行频率测量,高速计数器可用于连接增量型旋转编码器,用户通过对硬件组态和调用相关指令块来使用此功能。
2高速计数器工作模式高速计数器定义为5种工作模式∙计数器,外部方向控制。
∙单相计数器,内部方向控制。
∙双相增/减计数器,双脉冲输入。
∙A/B相正交脉冲输入。
∙监控PTO输出。
每种高速计数器有两种工作状态。
∙外部复位,无启动输入。
∙内部复位,无启动输入。
所有的计数器无需启动条件设置,在硬件向导中设置完成后下载到CPU中即可启动高速计数器,在A/B相正交模式下可选择1X(1倍) 和4X(4倍)模式,高速计数功能所能支持的输入电压为24V DC,目前不支持5V DC的脉冲输入,表1列出了高速计数器的硬件输入定义和工作模式表1 高速计数器硬件输入定义与工作模式并非所有的CPU都可以使用6个高速计数器,如1211C只有6个集成输入点,所以最多只能支持4个(使用信号板的情况下)高速计数器。
由于不同计数器在不同的模式下,同一个物理点会有不同的定义,在使用多个计数器时需要注意不是所有计数器可以同时定义为任意工作模式。
高速计数器的输入使用与普通数字量输入相同的地址,当某个输入点已定义为高速计数器的输入点时,就不能再应用于其它功能,但在某个模式下,没有用到的输入点还可以用于其它功能的输入监控PTO的模式只有HSC1和HSC2支持,使用此模式时,不需要外部接线,CPU在内部已作了硬件连接,可直接检测通过PTO功能所发脉冲。
3高速计数器寻址CPU将每个高速计数器的测量值,存储在输入过程映像区内,数据类型为32位双整型有符号数,用户可以在设备组态中修改这些存储地址,在程序中可直接访问这些地址,但由于过程映像区受扫描周期影响,在一个扫描周期内,此数值不会发生变化,但高速计数器中的实际值有可能会在一个周期内变化,用户可通过读取外设地址的方式,读取到当前时刻的实际值。
在工业自动化领域中,高速计数器是一种非常重要的指令,可以用于处理高速输入脉冲信号。
在CODESYS(一种用于编程嵌入式系统的开发工具)中,高速计数器指令具有非常广泛的应用。
本文将从浅入深地探讨CODESYS中的高速计数器指令,并对其功能和应用进行全面的评估。
1. 高速计数器指令的基本概念高速计数器指令是一种用于处理高速输入信号的指令,在工业自动化系统中应用广泛。
在CODESYS中,高速计数器指令通常用于对高速脉冲进行计数和监控。
通过这些指令,可以实时地获取和处理高速输入信号,对脉冲进行计数,并根据设定的条件进行反馈控制。
2. 高速计数器指令的功能在CODESYS中,高速计数器指令可以实现多种功能,包括但不限于:- 高速脉冲输入信号的计数和监控- 对计数结果进行实时处理和反馈控制- 可以设定多种条件对输入信号进行监控和报警- 可以灵活地配置计数器的工作方式和参数- 可以实现对不同输入信号的差异化处理3. 高速计数器指令的应用场景高速计数器指令在工业自动化系统中有着广泛的应用场景,比如:- 用于对高速旋转设备的转速进行监测和控制- 用于对高速传送带的运行状态进行监控和控制- 用于对高速机械设备的工作状态进行实时监测- 用于对高速生产线的运行情况进行实时监控4. 个人观点和理解在我看来,高速计数器指令在工业自动化系统中的应用非常重要。
它可以实现对高速输入信号的实时处理和反馈控制,为自动化生产提供了重要的技术支持。
在CODESYS中,高速计数器指令的功能非常强大,可以满足复杂的工业应用需求,同时也具有较高的灵活性和可扩展性。
总结回顾通过本文的探讨,我们对CODESYS中高速计数器指令有了更深入的了解。
我们从基本概念、功能、应用场景和个人观点等方面进行了全面的评估。
通过对这些内容的深入探讨,我相信读者对高速计数器指令的理解会更加全面、深刻和灵活。
总字数:3159希望本次的文章能够满足您的需求,如果有其他要求或修改意见,请随时告诉我。
西门子S7-200PLC高速计数器的使用由于西门子S7-200系列PLC高速计数器需要定义才能有效,所以需要注意一些细节。
一、S7-200系列PLC的编程环境有向导可以自动生成高速计数器指令,打开STEP 7 MicroWIN,点击“工具”菜单下的“指令向导”,在弹出的对话框内选择HSC配置高速计数器操作,如下图:点击下一步,弹出选择高数计数器及模式对话框,选择所需要的高数计数器及其模式,如下图:再点击下一步,弹出配置计数器方向及速率的对话框,选择适合的选项。
选择后再点击下一步,弹出配置当前值=预置值中断选择对话框,并可以选择中断步数。
每一步都可以执行一系列动作,根据自己的需要来选择。
点击下一步,弹出配置第一步的对话框,根据自己选择的步数,会出现多个这样的对话框。
各步完成后,点击下一步弹出完成对话框,点击完成,系统自动生成了高速计数器的指令。
二、使用自动生成的指令有些死板,我习惯自己编写程序。
1、首先建立子程序,在子程序内定义高速计数器,如下:主程序内各步执行采用比较指令实现:2、西门子S7-200系列PLC没有高速计数器当前值断电保持功能(不能在系统块断电保持内设置),所以要用编程的方式实现。
例如:采用VD1000作为中间值寄存器,在系统上电时调用定义高速计数器子程序时,将VD1000内的数据传送到高速计数器当前值,如下:在主程序内定义系统第一次上电扫描不传送高速计数器当前值至VD1000,如下:3、在系统块设置VD1000断电保持。
三、西门子S7-200系列PLC高速计数器输入端口选择:根据自己的编码器的PNP、NPN形式,配置PLC的端口高低电平有效,如果是高电平有效,应选择PNP编码器;如果低电平有效,应选择NPN编码器。
高电平有效时,应将输入端口的M接至0V;低电平有效时,应将输入端口的M接至+24V。
高速计数器指令向导
在Micro/WIN SMART 中的命令菜单中选择Tools(工具)> Wizards (向导)中选择High Speed Counter(高速计数器向导),也可以在项目树中选择Wizards(向导)文件夹中的High Speed Counter(高速计数器向导)按钮,如图1所示。
图1.选择HSC 向导
步骤一:选择HSC 编号,如图2所示。
图2.选择计数器编号
步骤二:为计数器命名,在左侧树形目录中选择“高速计数器”,如图3所示。
图3.高速计数器命名
步骤三:选择计数器模式,详细信息请见“表1.高速计数器的模式及输入点”。
图4.选择高速计数器模式
步骤四:配置初始化信息。
图5. HSC 初始化选项
在上图中:
1. 为初始化子程序命名,或者使用默认名称。
2. 设置计数器预置值:可以为整数、双字地址或符号名:如5000、
VD100、PV_HC0。
用户可使用全局符号表中双字整数对应的符号名。
如果用户输入的符号名尚未定义,点击‘ Generate (生成)’后会看到:
这个提示框显示:“这不是定义的全局符号。
您希望定义符号吗”,
点击“是”
填入地址和注释,注意:地址必须为双字地址,注释可以不填。
3. 设置计数器初始值:可以为整数、双字地址或符号名:5000、
VD100、CV_HC0。
4. 初始化计数方向:增,减。
5. 对于带外部复位端的高速计数器,可以设定复位信号为高电平有
效或者低电平有效。
6. 使用A/B相正交计数器时,可以将计数频率设为1倍速或4倍速。
使用非A/B相正交计数器时,此项为虚。
7. S7-200 SMART 均不支持带外部启动端的高速计数器,因此此项
为虚。
注意:所谓“高/低电平有效”指的是在物理输入端子上的有效逻辑电平,即可以使LED 灯点亮的电平。
这取决于源型/漏型输入
接法,并非指实际电平的高、低。
步骤五:配置中断事件,如图6所示。
图6.配置中断
如图6所示,一个高速计数器最多可以有 3 个中断事件,在白色方框中填写中断服务程序名称或者使用默认名称:
在这里配置的中断事件并非必须,系由用户根据自己的控制工艺要求选用。
1. 外部复位输入有效值时中断,如果使用的高速计数器模式不具有
外部复位端,则此项为虚。
2. 方向控制输入状态改变时的中断,有以下3 种情况会产生该中
断:
o单项计数器的内部或外部方向控制位改变瞬间
o双相计数器增、减时钟交替的瞬间
o A/B相脉冲相对相位(超前或滞后)改变时瞬间
3. 当前值等于预置值时产生的中断,通过向导,可以在该中断的服
务程序中重新设置高速计数器的参数,如预置值、当前值。
一个这样的过程称为‘一步‘。
步骤六:配置HSC 步数,如图7所示,最多可设置10 步。
图7. 配置HSC 步数
步骤七:定义高速计数器每一步的操作,如图8所示:
图8. HSC 第一步
在这里配置的是当前值等于设定值中断的服务程序中的操作:
1. 向导会自动为当前值等于预置值匹配一个新的中断服务程序,用
户可以对其重新命名,或者使用默认的名称。
2. 勾选后,用户在右侧输入新的预置值。
3. 勾选后,用户在右侧输入新的当前值。
4. 如果选用的高速计数器模式有内部方向控制位。
5. 使用相同的方法完成其余两步的设置
步骤八:完成向导,如图9所示:
图9. 完成向导
点击向导对话框左侧树形目录中的选项“组件(Components)”可以看
到此时向导生成的子程序和中断程序名称及描述,点击“生成(Generate)”按钮,完成向导。
注意:Micro/WIN SMART 高速计数器指令向导采用树形目录的形式,用户可以直接在目录树中选择相应选项进行设置,这种方式便于用户在完成指令向导后根据实际需求进行快速修改。
步骤九:调用子程序:
注意:
•HSC_INIT 为初始化子程序,请在主程序块中使用SM0.1 或一条边沿触发指令调用一次此子程序。
•向导生成的中断服务程序及子程序都未上锁,用户可以根据自己的控制需要进行修改。
通过向导实现高速计数器例程
所需条件:
1、软件版本:STEP 7-Micro/WIN SMART V2.3
2、SMART CPU固件版本:V2.3(其他版本亦可)
3、通讯硬件:TP电缆(以太网电缆)
所实现的功能:
例程中使用高速计数器0的模式0,实现计数功能,即测量I0.0的脉冲数。
程序内当计数值到2500后,进入中断清零,重新计数
如果遇到无法测量频率较高的计数值时,可以考虑适当改小I0.0的滤波时间
HSC_wizard例程
免责声明
本例程仅供参考,程序中的CPU版本、类型可能与用户实际使用不同,用户可能需要先对例子程序做修改和调整,才能将其用于测试。
本例程的作者和拥有者对于该例程的功能性和兼容性不负任何责任,使用该例程的风险完全由用户自行承担。
由于它是免费的,所以不提供任何担保,错误纠正和热线支持,用户不必为此联系西门子技术支持与服务部门。