西门子PLC卡件231-7PF22-OXAO
在这里,和大家一起来讨论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=选择PWM
SM67.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即可高速计数功能。
西门子S7-200系列PLC具有高速计数的功能;举一例子来谈谈高速计数的用途,我们采用普通电机来带动丝杆转动,我们想控制转动距离,怎么来解决这个问题?那么我们可在电机另一头与一编码器联接,电机转一圈,编码器也随之转一圈,同时根据规格发出不同的脉冲数。当然,这些脉冲数的频率比较高,PLC不能用普通的上升沿计数来取得这些脉冲,只能通过高速计数功能了。
启动高速计数功能,也要具有控制字
HSCO HSC1 描述
SM37.0 SM47.0 复位有效电平控制位 0=高电平有效, 1=低电平有效
SM37.1 SM47.1 启动有效电平控制位于 0=高电平有效, 1=低电平有效
SM37.2 SM47.2 正交计数器速率选择 0=4X计数率, 1=1X计数率
SM37.3 SM47.3 计数方向控制位 0=减计数, 1=正计数
SM37.4 SM47.4 向HSC中写入计数方向 0=不更新, 1=更新计数方向
SM37.5 SM47.5 向HSC中写入预置值 0=不更新, 1=更新预置值
SM37.6 SM47.6 向HSC中写入当前值 0=不更新, 1=更新当前值
SM37.7 SM47.7 HSC允许 0=禁止HSC, 1=允许HSC
参照上面的表格,我们选择HSC1高速计数器,控制字为SMB47,现在我们启动高速计数器HSC1,选择为增计数,更新计数方向,重新设置值,更新当前值:这样的话,HSC1的启动控制高为:11111000转化为16进制为 F8,将启动计数器时当前值存放在SMD48中,将预存置放在SMD52中,具体的程序
西门子S7-200系列PLC的PID控制相当的简单,可以通过micro/win软件的一个向导程序,按照提示,一步一步执行您所要求PID控制的属性即可,在这里谈一谈PID这三个参数的具体意义:P为增益项,P越大,响应起就快,在调节流量阀时:设定流量为50%,当目前流量接近50%,刚超过,如果P值很大的话,那么流量阀会马上会关闭,而不会控制在某一区域。这就是增益项太大引起。在调节的过程中应该先将P值调节比较适当了,再去调节I值,它为积分项,是在控制器回路中控制对当前值与设定值相等的偏差范围。D为微分项,主要作用是避免给定值的微分作用而引起的跳变。
在现场的PID参数的调整过程中,针对西门子S7-200型PLC我的建议是在不同的控制阶段,采用不同的PID参数组,具体而言就是当目前距离设定值差距较大时,采用P值较大的一套PID参数,如果当前值快接近设定值范围时,采用P值较小的一套PID参数。
用S7-200 CPU 214的高速计数器HSC累计来自模拟量/频率转换器(A/F的脉冲来计算模拟电压值
本例说明了如何利用CPU 214的高速计数器HSC及频率转换器来计算模拟电压。首先频率转换器将输入电压(0~10V)转换为矩形脉冲信号(0~2000Hz),再将此信号送入CPU214高速记数器的输入端并累计脉冲数。当预置的问隔时问到后,通过累计脉冲数,计算出被测模拟电压值。
主程序 在*个扫描周期调用子程序SBR0
SBR0 高速计数器和定时中断的初始化
INT0 对高速计数器求值的定时中断程序
程序和注释
主程序在*个扫描周期调用初始化程序SBR0,仅在*个扫描周期标志位SM0.1=1由子程序SBR0实现初始化。首先,把高速记数器HSC1的控制字节SMB47置为16进制‘FC',其含义是:正方向计数,可更新预置值(PV),可更新当前值(CV),激活HSC1。然后,用指令‘HDEF’把高速计数器HSC1置成工作模式0}即没有复位或起始输入,也没有外部的方向选择。当前值SMD48复位为0,预置值SMD52置为FFFF (16进制)。定时中断0间隔时间SMB34置为100ms,中断程序0分配给定时中断0(中断事件10),并允许中断。用指令HSC1启动高速计数器。
每100ms调用一次中断程序0,读出高速计数器的数值后将其置零。通过HSC1计数值及变换关系(0~2KHz对应于0~10V)来求被测的模拟电压值。本例中,计数值仅除以2,然后置入输出字节QB0,以便通过LED来显示被测的模拟电压值。显示值与10倍真实电压值相对应。例如,计数值为200除以2是100,那么,被测的模拟电压值就是10.0V。因为计数器100ms内共有200个计数脉冲,这正与2000Hz=>10V相对应。假设计数值为104,则实际电压值应为5.2V。
注意:定时中断时间可在5~255ms的范围内变化,然而,通过设立一个标志,可根据需要来延长高速计数器的求值和复位时间,这样就有更长的扫描间隔,以便提高**度,同时也会带来更长的更新时间。例如,定时中断设为100ms,每调用一次,标志增加1,仅当标志满10时,才对高速计数器求值和复位。也就是说,10V 电压可接收的zui大脉冲为2000,这样,求值**到5/1000V即**度是上例的10倍,但同时速度也减慢了10倍。
在程序中用定时器来控制时间。SIMATIC S7-200系列可编程控制器设置了两种类型的定时器:接通延迟(On-Delay)定时器(TON),保持接通延迟"(Retentive On-Delay)定时器(TONR)。它们都可工作在三种精度下,即1 msec. 10msec和100msec。
本例说明了每种定时器的操作及使用方法,重点在于小同精度下,定时器的操作方法的区别。
S7-200定时器由一个单独的使能输入端(IN)来控制,由于定时器是可使能的,因此,能够保留过去了的时间值。定时器还有一个预置时间值(PT),当前值更新时,它与当前值比较,定时器位(T位)置位/复位(set/reset)就取决于当前值与预置值的比较结果。
若当前值大于或等于预置时问值,定时器位接通(ON);否则,定时器位断开(OFF)。当前值达到zui大值时,计时停。
西门子S7-200可编程控制器PLC使用STEP7-Micro/WIN32编程软件进行编程。STEP7-Micro/WIN32编程软件是基于Windows的应用软件,功能强大,主要用于开发程序,也可用于适时监控用户程序的执行状态。加上汉化后的程序,可在全汉化的界面下进行操作。