S7 200编码器高速计数器教程
- 格式:pdf
- 大小:1.21 MB
- 文档页数:3
高速计数器的使用向导在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系列PLC编程器的使用示例Siemens编程器S7-200系列用在中小型设备上的自动系统的控制单元,适用于各行各业,各种场合中的检测,监测及控制。
在这里,和大家一起来讨论S7-200几个使用方面的情况。
1.步进,伺服脉冲定位控制。
在设备的控制系统中,有关运动控制是很重要的,下面我们来看一看西门子S7-200系列PLC怎样来实现这个功能。
首先,确定使用哪个端口来发脉冲,如采用Q0.0发脉冲,则它的控制字为SMB67,脉冲同期为SMW68,脉冲个数存放在SMD72中,下面是控制字节的说明:Q0.0 Q0.1 控制字节说明SM67.0 SM77.0 PTO/PWM更新周期值 0=不更新,1=更新周期值SM67.1 SM77.1 PWM更新脉冲宽度值 0=不更新,1=脉冲宽度值SM67.2 SM77.2 PTO更新脉冲数 0=不更新,1=更新脉冲数SM67.3 SM77.3 PTO/PWM时间基准选择 0=1微秒值,1=1毫秒值SM67.4 SM77.4 PWM更新方法 0=异步更新,1=同步更新SM67.5 SM77.5 PTO操作 0=单段操作,1=多段操作SM67.6 SM77.6 PTO/PWM模式选择 0=选择PTO,1=选择PWMSM67.7 SM77.7 PTO/PWM允许 0=禁止PTO/PWM,1=允许这样根据以上表格,我们得出Q0.0控制字:SMB67为:10000101采用PTO输出,微妙级周期,发脉冲的周期(也就是频率)与脉冲个数都要重新输入。
10000101转化为16进制为85,有了控制字以后,我们来写这一段程序:根据上面这段程序,我们知道了控制字的使用,同时也知道步进电机的脉冲周期与冲个数的存放位置(对Q0.0来说是SMW68与SMD72)。
当然,VW100与VD102内的数据不同的话,步进电机的转速和转动圈数就不一样。
还有一点需要说明得是:M0.0导通---PLC捕捉到上升沿发动脉冲输出后,想停止的话,只须改变端口脉冲的控制字,再启动PLS即可,程序如下:2.高速计数功能。
∙高速计数器的实际输入要根据用户选择的高速计数器号和模式来确定,如上表。
例:如果你选择了HSC0的模式1,则你的外部高速计数输入点应接在I0.0,外部复位点应接在I0.2。
∙如果用户使用了多个高速计数器,则被某一高速计数器占用了的输入点,其它高速计数器不能再使用。
如HSC0的模式3已经占用了I0.1作为外部方向控制点,那么HSC3高速计数器就不能再使用了,因为它的计数输入点也是I0.1,与之冲突了。
常问问题:CPU 224 XP的高速计数器模式12,是否可以计数30 KHz以上的脉冲?CPU 224 XP 支持最多100 KHz 的高速脉冲输出。
S7-200 系列CPU 只有高速计数器HSC0, HSC3 能够被设置为模式12,使用的输入端子为I0.0, I0.1,而不是特高速输入端子:I0.3、I0.4、I0.5。
非特高速脉冲信号输入端由于硬件电路的限制(如光电耦合等)只能支持最高30 KHz 的高速脉冲输入。
用户使用高速计数器模式12 时不需要任何外部连线,Q0.0(Q0.1) 与I0.0(I0.1) 通过集成电路内部关联,越过了外部信号处理电路,因此HSC0(HSC1) 可以计100KHz 或者更高频率的脉冲。
用户在使用向导配置S7-200 内部PTO/ PWM 操作时,勾选“使用高速计数器HSCx(模式12)自动计数线性PTO 生成的脉冲”即可。
高速计数器怎样占用输入点?高速计数器根据被定义的工作模式,按需要占用CPU上的数字量输入点。
每一个计数器都按其工作模式占用固定的输入点。
在某个模式下没有用到的输入点,仍然可以用作普通输入点;被计数器占用的输入点(如外部复位),在用户程序中仍然可以访问到。
为什么高速计数器不能正常工作?在程序中要使用初次扫描存储器位SM0.1来调用HDEF指令,而且只能调用一次。
如果用SM0.0调用或者第二次执行HDEF指令会引起运行错误,而且不能改变第一次执行HDEF指令时对计数器的设定。
s7-200高速计数器详细解说一、高速计数器普通计数器是通过两次扫描中输入端子的电平变化实现计数的,可以用普通的寄存器通过加1指令实现。
特点是受扫描的影响,只能用于低频脉冲计数。
高速脉冲使用PLC内部的高速计数器,各种PLC都内置高速计数器。
S7-200 CPU具有集成的、硬件高速计数器。
CPU221和CPU222可以使用4个30kHz单相高速计数器或2个20kHz的两相高速计数器,而CPU224和CPU226可以使用6个30kHz单相高速计数器或4个20kHz的两相高速计数器。
高速计数器的主要功能就是对主机实际转速反馈进行测量,这是电子调速器的一项重要功能,因为主机实际转速反馈测量的准确与否直接关系到保证主机转速稳定,保证主机运行的安全。
重点介绍了S7-200 PLC高速计数器。
在开发研制中发现,采用S7-200 PLC高速计数器可以非常准确地对电动机实际转速反馈进行测量,而且硬件实现非常简单,价格也比较低,具有很大的应用价值。
(一)概述普通计数器是通过两次扫描输入端子电平变化来进行计数的,因此其端子输入脉冲的频率必须必扫描频率低得多。
对于高速脉冲而言,这种方法会出现丢失脉冲导致计数错误。
S7-200内置了高速计数器HSC,其工作情况类似于单片机中的计数器。
起动后不受扫描周期的影响,由硬件自动计数,当满足一定条件时发出中断申请。
其最高技术频率高达30KHz。
S7-200的计数器最多可以设置12种不同的工作模式,用于实现高速运动的精确控制。
S7-200还设有高速脉冲输出,输出频率可以高达20KHz。
用于PTO(脉冲串输出,输出一个频率可调,占空比50%的脉冲。
)和PWM(脉宽调制脉冲)。
PTO用于带有位置控制功能的步进电机控制或者伺服电机驱动器控制,通过输出脉冲的个数作为位置给定值的输入,以实现定位控制功能。
通过改变脉冲的输出频率,可以改变运动的速度。
PWM用于直接驱动调速系统或运动控制系统的输出,控制主逆变回路。
高速脉冲计数器高速计数器专用输入高速计数器使用的输入HSC0 I0.0, I0.1, 0.2HSC1 I0.6, I0.7, I1.0, I1.1HSC2 I1.2, I1.3, I1.4, I1.5HSC3 I0.1HSC4 I0.3, I0.4, I0.5HSC5 I0.4有些高速计数器和边缘中断的输入点赋值存在某些重叠。
同一个输入不能用于两种不同的功能;但是高速计数器当前模式未使用的任何输入均可用于其他目的。
例如,如果在模式2中使用HSC0,模式2使用I0.0和I0.2,则I0.1可用于边缘中断或用于HSC3。
如果所用的HSC0模式不使用输入I0.1,则该输入可用于HSC3或边缘中断。
与此相似,如果所选的HSC0模式不使用I0.2,则该输入可用于边缘中断;如果所选HSC4模式不使用I0.4,则该输入可用于HSC5。
请注意HSC0的所有模式均使用I0.0,HSC4的所有模式均使用I0.3,因此当使用这些计数器时,这些输入点四台计数器有三个控制位,用于配置复原和起始输入的激活状态并选择1x或4x计数模式(仅限正交计数器)。
这些控制位位于各自计数器的控制字节内,只在执行HDEF指令时才使用。
执行HDEF指令之前,必须将这些控制位设为所需的状态,否则计数器采用所选计数器模式的默认配置。
复原输入和起始输入的默认设置为现用水平高,正交计数速率为4x(或4乘以输入时钟频率)。
一旦执行了HDEF指令,就不能再改变计数器设置,除非首先将CPU设为STOP(停止)模式。
下表复位和启动输入的有效电平以及1x/4x控制位**缺省设置为:复位输入和启动输入高电平有效,正交计数率为四倍速(四倍输入时钟频率)。
定义控制字节一旦定义了计数器和计数器模式,您就可以为计数器动态参数编程。
每台高速计数器均有一个控制字节,允许完成以下作业:* 启用或禁止计数器* 控制方向(仅限模式0、1和2)或初始化所有其他模式的计数方向* 载入当前值每台高速计数器都有一个32位初始值和一个32位预设值,初始值和预设值均为带符号的整数值。
s7-200高速计数器详细解说1.高速计数器指令普通计数器受CPU扫描速度的影响,是按照顺序扫描的方式进行工作。
在没个扫描周期中,对计数脉冲只能进行一次累加;对于脉冲信号的频率比PLC的扫描频率高时,如果仍采用普通计数器进行累加,必然会丢失很对输入脉冲信号。
在PLC中,对比扫描频率高的输入信号的计数可也使用高速计数器指令来实现。
在S7-200的CPU22X中,高速计数器数量及其地址编号表如下CPU类型CPU221 CPU222 CPU224 CPU226高速计数器数量 4 6高速计数器编号HC0,HC3~HC5 HC0~HC51.高速计数器指令高速计数器的指令包括:定义高速计数器指令HDEF 和执行高速计数指令HSC,如表HDEF HSC(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.高速计数器的输入端高速计数器的输入端不像普通输入端那样有用户定义,而是由系统指定的输入点输入信号,每个高速计数器对它所支持的脉冲输入端,方向控制,复位和启动都有专用的输入点,通过比较或中断完成预定的操作。
s7-200高速计数器详细解说1.高速计数器指令普通计数器受CPU扫描速度的影响,是按照顺序扫描的方式进行工作。
在没个扫描周期中,对计数脉冲只能进行一次累加;对于脉冲信号的频率比PLC的扫描频率高时,如果仍采用普通计数器进行累加,必然会丢失很对输入脉冲信号。
在PLC中,对比扫描频率高的输入信号的计数可也使用高速计数器指令来实现。
CPU类型CPU221 CPU222 CPU224 CPU226高速计数器数量 4 6高速计数器编号HC0,HC3~HC5 HC0~HC51.高速计数器指令HDEF HSC(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提供了一个状态字节,为了监视高速计数器的工作状态,执行由高速计数器引用的中断事件,其格式如表。
编码器相关资料
需要事先掌握的几个概念
1、编码器是一个发出信号的装置,发出脉冲。
2、高速计数器是PLC内置的高速计数装置,(普通的计数器的技术跟扫描周期很大关系,无法计数快速的脉冲信息)。
3、高速计数器有很多个,很多个模式,不看手册,图是不可能记住的。
4、编码器的计数只是高速计数器的一种模式而已。
5、所谓的A B相,就是在A为1时B有上升沿,或者在B为1时A有上升沿。
右边正反转你掌握的就是正反转的时候,AB相的不同。
人家plc如何计数?
那是西门子的事。
你所要知道的是,这个正反转加减技术就是根据这个不同plc自己来识别的。
不要乱操心。
6、编码器可以输出三路脉冲,你完全可以根据自己的需要只用其中的任何一路。
比如你只用Z技术圈数,或者只用AB计数螺杆位置,或者只用A或者B来技术一个单方向的脉冲。
根据自己需要,你也可以全部都用,来计数角度。
还可以只用一路单纯用作脉冲发生器来做实验。
它就是那么一个随着转动发脉冲的反馈装置。
7、中断程序:本质跟子程序是一样的,子程序只要一个纯点就可以来调用,中断程序需要“事件来调用”,为什么会这样的,因为就是有一些“事”要处理,比如上升下降就是要立即处理的情况,这都是根据需要搞出来的概念,不是凭空出来的。
8、事》》》有很多种事,很多件事,不能搞混,这根现实生活中的事情是一样的。
本就是一个概念。
那么多就要编号,这就是“事件号”。
9、中断程序可以有很多,int0123456,如果不指定哪个事件发生,我要处理哪个事件,这样的话,那岂不是乱套,对吧?事件1发生,我要调用可以调用任何一个int中断程序,要确定,就得在程序里预先“连接”上,这样的话当发生事件1了,那么相关子程序(中断子程序中断子程序也是子程序的一种嘛只不过调用是被“事件”来调用的)就会被调用。
10、所以整个过程是
查看下表》》》》》确定高速计数器》》》》根据控制需要确定计数模式》》》查找高速计数器的输入通道I,接上线》》》》用高速计数器向导编程或者狂做实验(我第一次用,做了2小时试验,全会了)。
如果还不行
照着下面做,那个例子有详细的解释,任何疑问这个例子可以详细解释的。
11、向导例子做出来的子程序全是有注释的。
12、这个配置的子程序可以根据自己的需要添加进去处理,如果你不理解那个中断子程序的特殊位啥意思,帮助里面有菜
单帮助的。
在这里你可以查找到中断子程序里出现的任何一个SM,你如果需要修改模式计数,添加功能,那就随便你了,因为珍格格过程原理,你懂了,子程序你也动了全会读了,你就按照你自己的意思,任意编写了。
3小时就搞定事情,很多人搞三年都没完,真是搞不懂了。