西门子S7-200PLC

发布时间:2018/5/29 9:41:00

西门子S7-200PLC

6ES7216-2AD23-0XB8SIMATIC S7-200 CN,CPU 226 紧凑型设备,直流电源 24 个直流数字输入/16 个直流数字输出, 16/24 KB 程序/10 KB 数据, 2 PPI/自由编程 SS 此 S7-200 CN 产品 只具有 CE

说明
扩展模块 EM 231、 EM 232  和 EM 235模拟量的输入输出和 CPU224XP 一样以 word 格式的整数显示,这就需要做转换来确保正确的显示和过程中的应用 。这些转换可通过附件中的功能块来完成。中包括 转换功能块的 "Scale" 库 和易于理解的例程"Tip038" 。

1. 比例换算
下列图表显示输入输出值的比例换算。

这里对术语 "单极性", "双极性" 和 "20% 偏移" 有解释。这些术语在其他 里非常重要。如STEP 7 Micro/Win - PID 向导(工具 > 指令向导 > PID 控制器)
单极性比例换算只有正的或负的值范围 (图 01 显示了一个模拟量输入值 0到32000的例子)。



图 01

在带有20%偏移的单极性的例子中, 限值是限值的 20% 。 (图 02 显示了一个模拟量输入值6400到  32000的例子)。



图 02

双极性比例换算有正的和负的值范围 (图 03 显示了一个 模拟量输入值 -32000 到 32000的例子)。



图 03

下表是对一些缩写地解释:
 

参数描述
Ov换算结果 (输出值)
Iv模拟量值 (输入值)
Osh

换算输出值的高限  (换算输出高限)

Osl换算输出值的低限   (换算输出低限)
Ish换算输入值的高限  (换算输入高限)
Isl换算输入值的低限  (换算输入低限)

表 01

2. 公式
以下公式由计算换算值的图表中得出:

Ov = (Osh - Osl) / (Ish - Isl) * (Iv - Isl) + Osl

3. 库

3.1 "Scale" 库地描述
"scale.mwl" 库包括从  INTEGER 到 REAL (S_ITR)、从REAL to REAL (S_RTR)及从REAL 到 INTEGER (S_RTI)类型数据的比例换算。



图 04

3.2 模拟量输入换算为REAL数据格式的输出值 (S_ITR)
S_ITR 功能块可用来将模拟量输入信号转换成0.0到1.0之间的标么值(  类型 REAL )。



图 05

3.3 REAL格式数据比例换算 (S_RTR)
S_RTR 功能块可用来转换在范围内的REAL 格式的值 (例如 将0.0 到 1.0输入值转化为百分数输出)。



图 06

3.4转换为 INTEGER格式数据的模拟量输出(S_RTI)
S_RTI 功能块可用来 将 REAL 数 转换为 INTEGER数据类型的模拟量输出。



图 07

4. 例子程序

4.1 例子程序 "Tip038"的描述
这里有一个装液体的密闭容器。

压差传感器为模拟量输入模块提供一个 (4 - 20 mA)电流输入 。 电流值的大小与容器内的液面高度成正比。

EM 235  必须进行校准,因此在液面高度为 10m 时模拟量为20mA 的值可转换为 3200 数字值。在液面为 0 m 时模拟量为4mA的值可转换为数字值6400。此程序可将数字值按比例转换为液面高度的米数。

显示液面高度的电压必须通过模拟量输出模块产生。这个电压值是对模拟量输出word (AQW) 写入相应的数字值产生的。

模拟量输出模块将液面高度(从0 m 到10 m)  以从0 V到10V的电压形式传输给测量装置。测量装置获得电压后以指针的偏移量来指显示液面的高度。

换算公式将每一个值按比例换算为与换算值之间的值。这个程序将接收的模拟量输入值 (AIW) 按比例换算后作为模拟量模块输出。首先程序读在 4 mA 到 20 mA (6400 与 32000)之间的AIW 值, 接着按比例转换为一个  0.0 到 1.0 (看图 05)之间的标么值。 然后按比例转换为0.0 to 100.0 (看图 06)的范围对应的0 到 32000 (看图 07)之间的值。

4.2  STEP 7 Micro/WIN 库可见 zip 文件
拷贝 "scale.zip" 文件到到一个单独的目录,然后打开。可集成为"scale.mwl" 库和例子程序 "Tip038_D.mwp"到 S7-200 项目中, 要求使用 STEP 7 Micro/WIN V4.0.7.10 及以上版本。 "scale.zip" 文件包括 德语版的库和例子程序("Tip038_D.mwp") 和英语版的("Tip038_E.mwp").

1 概述

S7--200提供了三种方式的开环运动控制:
? 脉宽调制(PWM)--内置于S7--200,用于速度、位置或占空比控制。
? 脉冲串输出(PTO)--内置于S7--200,用于速度和位置控制。
? EM253位控模块--用于速度和位置控制的附加模块。

S7—200的内置脉冲串输出提供了两个数字输出通道(Q0.0和Q0.1),该数字输出可以通过位控向导组态为PWM或PTO的输出。

当组态一个输出为PTO操作时,生成一个50%占空比脉冲串用于步进电机或伺服电机的速度和位置的开环控制。内置PTO功能仅提供了脉冲串输出。您的应用程序必须通过PLC内置I/O或扩展模块提供方向和限位控制。

PTO按照给定的脉冲个数和周期输出一串方波(占空比50%),如图1。PTO可以产生单段脉冲串或者多段脉冲串(使用脉冲包络)。可以指定脉冲数和周期(以微秒或毫秒为增加量):
? 脉冲个数: 1到4,294,967,295
? 周期: 10μs(100K)到65535μs或者2ms到65535ms。


图1

200系列的PLC的脉冲输出频率除 CPU224XP 以外均为20kHz。CPU224XP可达100kHz。如表1所示:


表1


2 MAP库的应用

2.1 MAP库的基本描述
现在,200系列 PLC 本体 PTO 提供了应用库MAP SERV Q0.0 和 MAP SERV Q0.1,分别用于 Q0.0 和 Q0.1 的脉冲串输出。如图2所示:

西门子S7-200PLC图2

注: 这两个库可同时应用于同一项目。

各个块的功能如表2所示:

功能
Q0_x_CTRL参数定义和控制
Q0_x_MoveRelative执行相对位移运动
Q0_x_MoveAbsolute执行位移运动
Q0_x_MoveVelocity按预设的速度运动
Q0_x_Home寻找参考点位置
Q0_x_Stop停止运动
Q0_x_LoadPos重新装载当前位置
Scale_EU_Pulse将距离值转化为脉冲数
Scale_Pulse_EU将脉冲数转化为距离值

表2

总体描述
该功能块可驱动线性轴。
为了很好的应用该库,需要在运动轨迹上添加三个限位开关,如图3:
? 一个参考点接近开关(home),用于定义位置 C_Pos 的零点。
? 两个边界限位开关,一个是正向限位开关(Fwd_Limit),一个是反向限位开关(Rev_Limit)。
? 位置? C_Pos 的计数值格式为 DINT ,所以其计数范围为(-2.147.483.648 to +2.147.483.647). ?
? 如果一个限位开关被运动物件触碰,则该运动物件会减速停止,因此,限位开关的安置位置应当留出足够的裕量?ΔSmin 以避免物件滑出轨道尽头。


图3

2.2 输入输出点定义
应用MAP库时,一些输入输出点的功能被预先定义,如表3所示:

名称MAP SERV Q0.0MAP SERV Q0.1
脉冲输出Q0.0Q0.1
方向输出Q0.2Q0.3
参考点输入I0.0I0.1
所用的高速计数器HC0HC3
高速计数器预置值SMD 42SMD 142
手动速度SMD 172SMD 182

表3

2.3 MAP库的背景数据块
为了可以使用该库,必须为该库分配 68 BYTE(每个库)的全局变量,如图4所示:


图4

下表是使用该库时所用到的最重要的一些变量(以相对地址表示),如表4:

符号名相对地址注释
Disable_Auto_Stop+V0.0默认值=0意味着当运动物件已经到达预设地点时,即使尚未减速到Velocity_SS,依然停止运动; =1时则减速至Velocity_SS时才停止
Dir_Active_Low+V0.1方向定义,默认值 0 = 方向输出为1时表示正向。
Final_Dir+V0.2寻找参考点过程中的方向
Tune_Factor +VD1调整因子(默认值=0)
Ramp_Time +VD5Ramp time = accel_dec_time(加减速时间)
Max_Speed_DI+VD9输出频率 = Velocity_Max
SS_Speed_DI+VD13输出频率 = Velocity_SS
Homing_State+VB18寻找参考点过程的状态
Homing_Slow_Spd+VD19寻找参考点时的低速(默认值 = Velocity_SS)
Homing_Fast_Spd+VD23寻找参考点时的高速(默认值 = Velocity_Max/2)
Fwd_Limit+V27.1正向限位开关
Rev_Limit+V27.2反向限位开关
Homing_Active+V27.3寻找参考点激活
C_Dir+V27.4当前方向
Homing_Limit_Chk+V27.5限位开关标志
Dec_Stop_Flag+V27.6开始减速
PTO0_LDPOS_Error+VB28使用Q0_x_LoadPos时的故障信息(16#00 = 无故障, 16#FF = 故障)
Target_Location+VD29目标位置
Deceleration_factor+VD33减速因子 =(Velocity_SS – Velocity_Max) /
accel_dec_time (格式: REAL)

SS_Speed_real+VD37速度 = Velocity_SS (格式: REAL)
Est_Stopping_Dist+VD41计算出的减速距离 (格式: DINT)

表4

2.4 功能块介绍
下面逐一介绍该库中所应用到的程序块。这些程序块全部基于PLC-200 的内置PTO输出,完成运动控制的功能。此外,脉冲数将通过指定的高速计数器 HSC 计量。通过 HSC 中断计算并触发减速的起始点。

2.4.1 Q0_x_CTRL
该块用于传递全局参数,每个扫描周期都需要被调用。功能块如图5,功能描述见表5。


图5

参数类型格式单位意义
Velocity_SSINDINTPulse/sec.启动/停止频率,必须是大于零的数
Velocity_MaxINDINTPulse/sec.频率
accel_dec_timeINREALsec.加减速时间
Fwd_LimitINBOOL
正向限位开关
Rev_LimitINBOOL
反向限位开关
C_PosOUTDINTPulse当前位置

表5

Velocity_SS 是脉冲频率,是加速过程的起点和减速过程的终点。
Velocity_Max 是小脉冲频率,受限于电机频率和PLC的输出频率。
在程序中若输入超出(Velocity_SS,Velocity_Max)范围的脉冲频率,将会被Velocity_SS 或 Velocity_Max 所取代。
accel_dec_time 是由 Velocity_SS 加速到 Velocity_Max 所用的时间(或由Velocity_Max 减速到 Velocity_SS 所用的时间,两者相等),范围被规定为 0.02 ~ 32.0 秒,但不要小于0.5秒。

警告:超出 accel_dec_time 范围的值还是可以被写入块中,但是会导致定位过程出错!

2.4.2 Scale_EU_Pulse
该块用于将一个位置量转化为一个脉冲量,因此它可用于将一段位移转化为脉冲数,或将一个速度转化为脉冲频率。功能块如图6,功能描述见表6。


图6

参数类型格式单位意义
InputINREALmm or mm/s欲转换的位移或速度
PulsesINDINTPulse /revol.电机转一圈所需要的脉冲数
E_UnitsINREALmm /revol.电机转一圈所产生的位移
OutputOUTDINTPulse or pulse/s转换后的脉冲数或脉冲频率

表6

下面是该功能块的计算公式:

2.4.3 Scale_ Pulse_EU
该块用于将一个脉冲量转化为一个位置量,因此它可用于将一段脉冲数转化为位移,或将一个脉冲频率转化为速度。功能块如图7,功能描述见表7。


图7

参数类型格式单位意义
InputINREALPulse or pulse/s欲转换的脉冲数或脉冲频率
PulsesINDINTPulse /revol.电机转一圈所需要的脉冲数
E_UnitsINREALmm /revol.电机转一圈所产生的位移
OutputOUTDINTmm or mm/s转换后的位移或速度

表7

下面是该功能块的计算公式:

2.4.4 Q0_x_Home
功能块如图8,功能描述见表8。


图8

参数类型格式单位意义
EXECUTEINBOOL
寻找参考点的执行位
PositionINDINTPulse参考点的位移
Start_DirINBOOL
寻找参考点的起始方向
(0=反向,1=正向)



DoneOUTBOOL
完成位(1=完成)
ErrorOUTBOOL
故障位(1=故障)

表8

该功能块用于寻找参考点,在寻找过程的起始,电机首先以 Start_Dir 的方向,Homing_Fast_Spd 的速度开始寻找;在碰到limit switch (“Fwd_Limit” or “Rev_Limit”)后,减速至停止,然后开始相反方向的寻找;当碰到参考点开关(input I0.0; with
Q0_1_Home: I0.1)的上升沿时,开始减速到 “Homing_Slow_Spd”。如果此时的方向与 “Final_Dir” 相同,则在碰到参考点开关下降沿时停止运动,并且将计数器HC0的计数值设为 “Position” 中所定义的值。

如果当前方向与 “Final_Dir” 不同,则必然要改变运动方向,这样就可以保证参考点始终在参考点开关的同一侧(具体是那一侧取决于 “Final_Dir”)。

寻找参考点的状态可以通过全局变量 “Homing_State” 来监测,如表9:

Homing_State的值意义
0参考点已找到
2开始寻找
4在相反方向,以速度 Homing_Fast_Spd 继续寻找过程(在碰到限位开关或参考点开关之后)
6发现参考点,开始减速过程
7在方向 Final_Dir ,以速度 Homing_Slow_Spd 继续寻找过程(在参考点已经在 Homing_Fast_Spd 的速度下被发现之后)
10故障(在两个限位开关之间并未发现参考点)

表9

2.4.5 Q0_x_MoveRelative
该功能块用于让轴按照指定的方向,以指定的速度,运动指定的相对位移。功能块如图9,功能描述见表10。


图9

参数类型格式单位意义
EXECUTEINBOOL
相对位移运动的执行位
Num_PulsesINDINTPulse相对位移(必须>1)
VelocityINDINTPulse/sec.预置频率
(Velocity_SS <= Velocity <=



Velocity_Max)



DirectionINBOOL
预置方向
(0=反向,1=正向)



DoneOUTBOOL
完成位(1=完成)

表10

2.4.6 Q0_x_MoveAbsolute
该功能块用于让轴以指定的速度,运动到指定的位置。功能块如图10,功能描述见表11。


图10

参数类型格式单位意义
EXECUTEINBOOL
位移运动的执行位
PositionINDINTPulse位移
VelocityINDINTPulse/sec.预置频率
(Velocity_SS <= Velocity <=Velocity_Max)



DoneOUTBOOL
完成位(1=完成)

表11

2.4.7 Q0_x_MoveVelocity
该功能块用于让轴按照指定的方向和频率运动,在运动过程中可对频率进行更改。功能块如图11,功能描述见表12。


图11

参数类型格式单位意义
EXECUTEINBOOL
执行位
VelocityINDINTPulse/sec.预置频率
(Velocity_SS <= Velocity <=



Velocity_Max)



DirectionINBOOL
预置方向
(0=反向,1=正向)



ErrorOUTBYTE
故障标识
(0=无故障,1=立即停止,3=执行错误)



C_PosOUTDINTPulse当前位置

表12

注意:Q0_x_MoveVelocity 功能块只能通过 Q0_x_Stop block 功能块来停止轴的运动。如图12:


图12

2.4.8 Q0_x_Stop
该功能块用于使轴减速直至停止。功能块如图13,功能描述见表13。


图13

参数类型格式单位意义
EXECUTEINBOOL
执行位
DoneOUTBOOL
完成位(1=完成)

表13

2.4.9 Q0_x_LoadPos
该功能块用于将当前位置的位置设置为预置值。功能块如图14,功能描述见表14。


图14

参数类型格式单位意义
EXECUTEINBOOL
设置位置的执行位
New_PosINDINTPulse预置位置
DoneOUTBOOL
完成位(1=完成)
ErrorOUTBYTE
故障位(0=无故障)
C_PosOUTDINTPulse当前位置

表14

注意:使用该块将使得原参考点失效,为了清晰地定义位置,必须重新寻找参考点。

2.5 校准

该块所使用的算法将计算出减速过程(从减速起始点到速度最终达到Velocity_SS)所需要的脉冲数。但时在减速过程中所形成的斜坡有可能会导致计算出的减速斜坡与实际的包络不完全一致。此时就需要对 “Tune_Factor” 进行校正。

校正因子 “Tune_Factor”
“Tune_Factor” 的值取决于、和目标脉冲频率以及减速时间。如图15:


图15

如图所示,运动的目标位置是B,算法会自动计算出减速起始点,当计算与实际不符时,当轴已经运动到B点时,尚未到达速度,此时若位 ”Disable_Auto_Stop” = 0,则轴运动到B点即停止运动,若位 ”Disable_Auto_Stop” = 1,则轴会继续运动直至到达速度。图中所示的情况为计算的减速起始点出现的太晚了。

确定调整因子

注意:新的校准过程并不需要将伺服驱动器连接到CPU。
步骤如下:
1. 置位 ”Disable_Auto_Stop”,即令 ”Disable_Auto_Stop” = 1。
2. 设置 “Tune_Factor” = 1。
3. 使用 Q0_x_LoadPos 功能将当前位置的位置设为0。
4. 使用 Q0_x_MoveRelative,以指定的速度完成相对位置运动(留出足够的空间以使得该运动得以顺利完成)。
5. 运动完成后,查看实际位置 HC0。Tune_Factor 的调整值应由 HC0,目标相对位移 Num_Pulses,预估减速距离 Est_Stopping_Dist 所决定。Est_Stopping_Dist 由下面的公式计算得出:

Tune_Factor由下面的公式计算得出:

6. 在调用 Q0_x_CTRL 的网络之后插入一条网络,将调整后的 Tune_Factor 传递给全局变量 +VD1,如图16。


图16

7. 复位 ”Disable_Auto_Stop”,即令 ”Disable_Auto_Stop” = 0。

2.6 寻找参考点的若干种情况
在寻找参考点的过程中由于起始位置、起始方向和终止方向的不同会出现很多种情况。

一个总的原则就是:从起始位置以起始方向 Start_Dir 开始寻找,碰到参考点之前若碰到限位开关,则立即调头开始反向寻找,找到参考点开关的上升沿(即刚遇到参考点开关)即减速到寻找低速 Homing_Slow_Spd,若在检测到参考点开关的下降沿(即刚离开遇到参考点开关)之前已经减速到 Homing_Slow_Spd,则比较当前方向与终止方向 Final_Dir 是否一致,若一致,则完成参考点寻找过程;若否,则调头找寻另一端的下降沿。若在检测到参考点开关的下降沿(即刚离开遇到参考点开关)之前尚未减速到 Homing_Slow_Spd,则在减速到 Homing_Slow_Spd 后调头加速,直至遇到参考点开关上升沿,重新减速到 Homing_Slow_Spd,判断当前方向与终止方向 Final_Dir 是否一致,若一致,则完成参考点寻找过程;若否,则调头找寻另一端的下降沿。(Final_Dir 决定寻找参考点过程结束后,轴停在参考点开关的哪一侧)

下面的图形会反应不同情形下寻找参考点的过程。

Start_Dir=0, Final_Dir=0,如图17:





图17

Start_Dir=0, Final_Dir=1,如图18:




图18

Start_Dir=1, Final_Dir=0,如图19:




图19

Start_Dir=1, Final_Dir=1,如图20:




图20

MAP Serve 库的方法:
根据下面的链接进入产品支持网站:
/cs/document/26513850?caller=view&lc=en-CN

网页如下所示:

在搜索关键字中输入文档编号“26513850”,进入下面的网页:

选择 MAP 参考文档(English)SERV_MAP_e.pdf 和 库文件 SERV MAP.zip。


西门子S7-200PLC