热门搜索:
西门子6ES7288-3AE04-0AA0
1. 概述
RS232C、RS422和RS485三种接口通讯的终端模块端子分配和电缆连接,如下图2/3/4所示。
注意:RS485接口内部已经短接,不需要外部短接处理,只要直接连接1,2,8。
2.1 STEP7 V5.4 SP5
2.2 ET200S 1SI 串行接口模块的功能块
2.3 串口调试器
3.1 硬件列表
表1 硬件设备
3.2 硬件接线示意图
4.1 组态和配置
1.打开STEP7,点击File->New...创建一新项目,项目名称为et200s ASCII。
2.用鼠标右键点击项目名称,选择Insert New Object->SIMATIC 300 Station,更改站的名称为 317-2PN/DP ,如下图7所示。
3. 在硬件组态中按订货号和硬件安装次序依次插入机架、CPU和ET200S标准从站模块,如下图8所示,注意所选串行接口模块为32字节的1SI ASCII (这里仅考虑数据传输的吞吐率,不考虑占用的I/O存储区的大小)。
4.双击1 SI ASCII 模块,点击Parameter选项,配置串口通信 参数。
本例中,“Interface”设为RS232C接口,勾选断线诊断,流量控制:无。通信波特率:9.6kb/s,数据位:8位,停止位:1位,奇偶效验:无,字符延迟时间:4ms,其他的参数都采用默认设置。注意:设定的参数要和通讯伙伴的相 同。
部分参数说明:
1.接口的选择
三种接口中:RS232C和RS422接口可以选择“断线检测”和“数据流量控制” 的功能, RS485/422可以设置“接收线路的初始化状态”。
On expiration of character delay time: 以固定的字符延迟时间为每帧数据的结束方式;
Dynamic Message frame buffer:如果勾上,模块就可以缓冲多个不同长度的消息;
4.2 编程
4.2.1 PLC侧编程
1.程序调用:从库Libraries -> ET200s SI -> ET200S Serial Interface -> ET200s SI中调用功能块,调用发送 FB3(S_SEND)和接收 FB2(S_RCV),并为其分配背景数据块分别为DB30和DB20,将块参数LADDR设为硬件组态中1 SI模块的起始逻辑地址256。
3.调用发送功能块
表2 FB3 S_SEND 的参数定义
4.调用接收功能块
表3 FB2 S_RCV的参数定义
4.2.2 PC机参数设置
西门子6ES7288-3AE04-0AA0
4.3 通讯测试
1.ET200S 1SI发送数据,调试软件接收数据
2.调试软件发送数据,ET200S 1 SI接收数据
1 概述
S7--200提供了三种方式的开环运动控制:
S7—200的内置脉冲串输出提供了两个数字输出通道(Q0.0和Q0.1),该数字输出可以通过位控向导组态为PWM或PTO的输出。
当组态一个输出为PTO操作时,生成一个50%占空比脉冲串用于步进电机或伺服电机的速度和位置的开环控制。内置PTO功能仅提供了脉冲串输出。您的应用程序必须通过PLC内置I/O或扩展模块提供方向和限位控制。
PTO按照给定的脉冲个数和周期输出一串方波(占空比50%),如图1。PTO可以产生单段脉冲串或者多段脉冲串(使用脉冲包络)。可以*脉冲数和周期(以微秒或毫秒为增加量):
200系列的PLC的较大脉冲输出频率除 CPU224XP 以外均为20kHz。CPU224XP可达100kHz。如表1所示:
2.1 MAP库的基本描述
注: 这两个库可同时应用于同一项目。
各个块的功能如表2所示:
表2
总体描述
2.2 输入输出点定义
表3
2.3 MAP库的背景数据块
下表是使用该库时所用到的较重要的一些变量(以相对地址表示),如表4:
表4
2.4 功能块介绍
2.4.1 Q0_x_CTRL
表5
Velocity_SS 是较小脉冲频率,是加速过程的起点和减速过程的终点。
警告:**出 accel_dec_time 范围的值还是可以被写入块中,但是会导致定位过程出错!
2.4.2 Scale_EU_Pulse
表6
下面是该功能块的计算公式:
2.4.3 Scale_ Pulse_EU
表7
下面是该功能块的计算公式:
2.4.4 Q0_x_Home
表8
该功能块用于寻找参考点,在寻找过程的起始,电机首先以 Start_Dir 的方向,Homing_Fast_Spd 的速度开始寻找;在碰到limit switch (“Fwd_Limit” or “Rev_Limit”)后,减速至停止,然后开始相反方向的寻找;当碰到参考点开关(input I0.0; with
如果当前方向与 “Final_Dir” 不同,则必然要改变运动方向,这样就可以保证参考点始终在参考点开关的同一侧(具体是那一侧取决于 “Final_Dir”)。
寻找参考点的状态可以通过全局变量 “Homing_State” 来监测,如表9:
表9
2.4.5 Q0_x_MoveRelative
表10
2.4.6 Q0_x_MoveAbsolute
表11
2.4.7 Q0_x_MoveVelocity
表12
注意:Q0_x_MoveVelocity 功能块只能通过 Q0_x_Stop block 功能块来停止轴的运动。如图12:
2.4.8 Q0_x_Stop
表13
2.4.9 Q0_x_LoadPos
表14
注意:使用该块将使得原参考点失效,为了清晰地定义**位置,必须重新寻找参考点。
2.5 校准
该块所使用的算法将计算出减速过程(从减速起始点到速度较终达到Velocity_SS)所需要的脉冲数。但时在减速过程中所形成的斜坡有可能会导致计算出的减速斜坡与实际的包络不完全一致。此时就需要对 “Tune_Factor” 进行校正。
校正因子 “Tune_Factor”
如图所示,运动的目标位置是B,算法会自动计算出减速起始点,当计算与实际不符时,当轴已经运动到B点时,尚未到达较低速度,此时若位 ”Disable_Auto_Stop” = 0,则轴运动到B点即停止运动,若位 ”Disable_Auto_Stop” = 1,则轴会继续运动直至到达较低速度。图中所示的情况为计算的减速起始点出现的太晚了。
确定调整因子
注意:一次新的校准过程并不需要将伺服驱动器连接到CPU。
Tune_Factor由下面的公式计算得出:
6. 在调用 Q0_x_CTRL 的网络之后插入一条网络,将调整后的 Tune_Factor 传递给全局变量 +VD1,如图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:
Start_Dir=0, Final_Dir=1,如图18:
Start_Dir=1, Final_Dir=0,如图19:
Start_Dir=1, Final_Dir=1,如图20:
串口模块ET200S 1SI(订货号:6ES7 138-4DF01-0AB0)是一款用于ET200S上的串口模块,支持两种软件协议(ASCII和3964(R)),通过接线区分可支持三种硬件接口(RS232C、RS422和RS485)。
在Step 7硬件组态中选择模块时,硬件目录中有以下六种版本的模块:
? ASCII (4B)
? ASCII(8B)
? ASCII(32B)
? 3964(R) (4B)
? 3964(R) (8B)
? 3964(R) (32B)
4/8/32字节代表数据传输的吞吐率大小,字节数越大,吞吐率越大,即数据传输越快,但是在ET200S机架上占用的I/O存储区也越多,如果从传输速率考虑,选择32B较快,如果从占用的I/O区较小考虑,选择4B占用较少,根据具体应用要求选择。
模块信息及指示灯含义,如下图1所示。
图1 模块指示灯含义
图2-1 RS232C接口终端模块端子分配
图2-2 RS232C接口终端模块电缆连接
图3-1 RS422接口终端模块端子分配
图3-2 RS422接口终端模块电缆连接
图4-1 RS485接口终端模块端子分配
图4-2 RS485接口终端模块电缆连接
2. 软件环境
用于编写S7-300/400程序,此软件需要从西门子购买,本文档中的部分代码使用Step7 V5.4 SP5的软件编写。
STEP 7 软件中不包含ET200s 1SI模块做串口通讯的功能块,需要单独安装一个软件,然后在Libraries下才有ET200sSI的库,功能块可供通讯调用,该软件从以下的链接下载。25358470
第三方提供的串口调试工具,可以从互联网上免费下载,可用于测试串口通讯。
3. 硬件列表和接线
CPU
CPU317-2PN/DP
6ES7 317-2EK14-0AB0
ET200S
接口模块
6ES7 151-1BA01-0AB0
功率模块
6ES7 138-4CA00-0AA0
1 SI串口模块
6ES7 138-4DF01-0AB0
功率模块的终端模块
TM-P15S23-A0
6ES7 193-4CD20-0AA0
电子模块的终端模块
TM-E15C24-01
6ES7 193-4CA30-0AA0
以RS232C的方式接线为例说明,1 Si 模块按照RS232C的接线方式连接到电脑的232口,连接示意图如下所示。
图5 硬件结构和接线示意图
4.组态设置和编程
图6新建项目对话框
图7 插入S7-300站
图8组态硬件
图9 参数分配
图10 接口设置
2.字符桢的格式:支持10位和11位的字符桢格式,包括数据传输的波特率,数据位,停止位和奇偶校验位。
3.接收字符桢结束判断条件
图11 结束判断条件
On receipt of end-of-text character: 以结束字符作为每帧数据的结束方式;
On receipt of fixed number of characters: 以固定的字符长度作为每帧数据的结束方式。
4.缓冲区处理方式
图12 缓冲区设置
Prevent message frame buffer overwrite:如果勾上,防止接收到的新消息覆盖缓冲区中的消息桢,这可以防止丢失以前接收到的消息桢;
Delete receive buffer during CPU startup:如果勾上,当CPU的工作模式从STOP切换到RUN(CPU启动)时,模块的接收缓冲区自动清空。
更多关于串口接口模块的组态和参数设置,请参考手册《ET 200S 串行接口模块》*2.9章节的内容,手册链接:9260793
图13 ET200S串口模块的逻辑地址
2.创建发送数据块DB1和接收数据块DB2
图14发送/接收数据块DB1/DB2
ET200S 1SI 的发送功能块FB3 S_SEND 的参数设置见下表2。
LADDR
硬件组态中串口模块的起始逻辑地址,本例中为256
DB_NO
发送数据块号,本例中为1(DB1)
DBB_NO
发送数据的起始地址,本例中为0(从DB1.DBB0开始)
LEN
发送数据的长度,本例中为10
REQ
发送数据触发位,上升沿触发,本例中为M0.0
R
取消通讯,本例中不用
COM_RST
如果为1 ,重新启动FB,本例中为M0.2
DONE
发送完成位,发送完成且没有错误时为TRUE,
ERROR
错误位,为TRUE说明有错误
STATUS
状态字,标识错误代码,察看ET200S串行接口模块手册获得相应的说明
图15 在程序中调用FB3 S_SEND
ET200S 1SI的接收功能块FB2 S_RCV的参数设置见下表3。
LADDR
硬件组态中串口模块的起始逻辑地址,本例中为256
DB_NO
接收数据块号,本例中为2(DB2)
DBB_NO
接收数据的起始地址,本例中为0(DB2.DBB0)
LEN
接收数据的长度,本例中为MW4,只有在接收到数据的当前周期,此值不为0 ,需要编程读出
EN_R
使能接收位,本例中为M0.2
R
取消通讯,本例中不用
COM_RST
如果为1 ,重新启动FB,本例中为M0.2
NDR
接收完成位,接收完成并没有错误时为TRUE
ERROR
错误位,为TRUE时说明有错误
STATUS
状态字,标识错误代码,查看ET200S串行接口模块手册获得相应的说明
图16 在程序中调用FB2 S_RCV
参数分配:串口选择COM1(默认),传输波特率为9.6Kb/s, 8位数据位,无校验,1位停止位,这些参数要和ET200s中1SI ASCII模块设置一致,同时将串口调试软件打开。
图17 串口调试软件参数设置
首先将硬件配置和程序下载到PLC,将DB1中前10个字节设为十六进制的01 02 03 04 05 06 07 08 09 10 ,然后将FB3的M0.0从FALSE置成TRUE,ET200S将发送数据10个字节数据,可以从串口调试软件的接收字符窗口中看到收到的数据(十六进制),结果如下图18所示。
图18 ET200S 1SI发送数据调试软件接收数据测试结果
首先将硬件配置和程序下载到CPU中,将FB2的M0.1设为TRUE,使能ET200S 接收。在PC机的串口软件打开,在发送字符输入窗口输入16进制数据1122334455667788 9900,然后点击“手动发送”按钮发送数据,则在PLC侧DB2的前10个字节能接收到数据,接收的长度为10,测试结果如下。
图19调试软件发送数据ET200S 1SI接收数据测试结果
? 脉宽调制(PWM)--内置于S7--200,用于速度、位置或占空比控制。
? 脉冲串输出(PTO)--内置于S7--200,用于速度和位置控制。
? EM253位控模块--用于速度和位置控制的附加模块。
? 脉冲个数: 1到4,294,967,295
? 周期: 10μs(100K)到65535μs或者2ms到65535ms。
图1
表1
2 MAP库的应用
现在,200系列 PLC 本体 PTO 提供了应用库MAP SERV Q0.0 和 MAP SERV Q0.1,分别用于 Q0.0 和 Q0.1 的脉冲串输出。如图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
将脉冲数转化为距离值
该功能块可驱动线性轴。
为了很好的应用该库,需要在运动轨迹上添加三个限位开关,如图3:
? 一个参考点接近开关(home),用于定义**位置 C_Pos 的零点。
? 两个边界限位开关,一个是正向限位开关(Fwd_Limit),一个是反向限位开关(Rev_Limit)。
? **位置? C_Pos 的计数值格式为 DINT ,所以其计数范围为(-2.147.483.648 to +2.147.483.647). ?
? 如果一个限位开关被运动物件触碰,则该运动物件会减速停止,因此,限位开关的安置位置应当留出足够的裕量?ΔSmin 以避免物件滑出轨道尽头。
图3
应用MAP库时,一些输入输出点的功能被预先定义,如表3所示:
名称
MAP SERV Q0.0
MAP SERV Q0.1
脉冲输出
Q0.0
Q0.1
方向输出
Q0.2
Q0.3
参考点输入
I0.0
I0.1
所用的高速计数器
HC0
HC3
高速计数器预置值
SMD 42
SMD 142
手动速度
SMD 172
SMD 182
为了可以使用该库,必须为该库分配 68 BYTE(每个库)的全局变量,如图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
+VD5
Ramp 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)
下面逐一介绍该库中所应用到的程序块。这些程序块全部基于PLC-200 的内置PTO输出,完成运动控制的功能。此外,脉冲数将通过*的高速计数器 HSC 计量。通过 HSC 中断计算并触发减速的起始点。
该块用于传递全局参数,每个扫描周期都需要被调用。功能块如图5,功能描述见表5。
图5
参数
类型
格式
单位
意义
Velocity_SS
IN
DINT
Pulse/sec.
启动/停止频率,必须是大于零的数
Velocity_Max
IN
DINT
Pulse/sec.
较大频率
accel_dec_time
IN
REAL
sec.
较大加减速时间
Fwd_Limit
IN
BOOL
正向限位开关
Rev_Limit
IN
BOOL
反向限位开关
C_Pos
OUT
DINT
Pulse
当前**位置
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秒。
该块用于将一个位置量转化为一个脉冲量,因此它可用于将一段位移转化为脉冲数,或将一个速度转化为脉冲频率。功能块如图6,功能描述见表6。
图6
参数
类型
格式
单位
意义
Input
IN
REAL
mm or mm/s
欲转换的位移或速度
Pulses
IN
DINT
Pulse /revol.
电机转一圈所需要的脉冲数
E_Units
IN
REAL
mm /revol.
电机转一圈所产生的位移
Output
OUT
DINT
Pulse or pulse/s
转换后的脉冲数或脉冲频率
该块用于将一个脉冲量转化为一个位置量,因此它可用于将一段脉冲数转化为位移,或将一个脉冲频率转化为速度。功能块如图7,功能描述见表7。
图7
参数
类型
格式
单位
意义
Input
IN
REAL
Pulse or pulse/s
欲转换的脉冲数或脉冲频率
Pulses
IN
DINT
Pulse /revol.
电机转一圈所需要的脉冲数
E_Units
IN
REAL
mm /revol.
电机转一圈所产生的位移
Output
OUT
DINT
mm or mm/s
转换后的位移或速度
功能块如图8,功能描述见表8。
图8
参数
类型
格式
单位
意义
EXECUTE
IN
BOOL
寻找参考点的执行位
Position
IN
DINT
Pulse
参考点的**位移
Start_Dir
IN
BOOL
寻找参考点的起始方向
(0=反向,1=正向)
Done
OUT
BOOL
完成位(1=完成)
Error
OUT
BOOL
故障位(1=故障)
Q0_1_Home: I0.1)的上升沿时,开始减速到 “Homing_Slow_Spd”。如果此时的方向与 “Final_Dir” 相同,则在碰到参考点开关下降沿时停止运动,并且将计数器HC0的计数值设为 “Position” 中所定义的值。
Homing_State的值
意义
0
参考点已找到
2
开始寻找
4
在相反方向,以速度 Homing_Fast_Spd 继续寻找过程(在碰到限位开关或参考点开关之后)
6
发现参考点,开始减速过程
7
在方向 Final_Dir ,以速度 Homing_Slow_Spd 继续寻找过程(在参考点已经在 Homing_Fast_Spd 的速度下被发现之后)
10
故障(在两个限位开关之间并未发现参考点)
该功能块用于让轴按照*的方向,以*的速度,运动*的相对位移。功能块如图9,功能描述见表10。
图9
参数
类型
格式
单位
意义
EXECUTE
IN
BOOL
相对位移运动的执行位
Num_Pulses
IN
DINT
Pulse
相对位移(必须>1)
Velocity
IN
DINT
Pulse/sec.
预置频率
(Velocity_SS <= Velocity <=
Velocity_Max)
Direction
IN
BOOL
预置方向
(0=反向,1=正向)
Done
OUT
BOOL
完成位(1=完成)
该功能块用于让轴以*的速度,运动到*的**位置。功能块如图10,功能描述见表11。
图10
参数
类型
格式
单位
意义
EXECUTE
IN
BOOL
**位移运动的执行位
Position
IN
DINT
Pulse
**位移
Velocity
IN
DINT
Pulse/sec.
预置频率
(Velocity_SS <= Velocity <=Velocity_Max)
Done
OUT
BOOL
该功能块用于让轴按照*的方向和频率运动,在运动过程中可对频率进行更改。功能块如图11,功能描述见表12。
图11
参数
类型
格式
单位
意义
EXECUTE
IN
BOOL
执行位
Velocity
IN
DINT
Pulse/sec.
预置频率
(Velocity_SS <= Velocity <=
Velocity_Max)
Direction
IN
BOOL
预置方向
(0=反向,1=正向)
Error
OUT
BYTE
故障标识
(0=无故障,1=立即停止,3=执行错误)
C_Pos
OUT
DINT
Pulse
当前**位置
图12
该功能块用于使轴减速直至停止。功能块如图13,功能描述见表13。
图13
参数
类型
格式
单位
意义
EXECUTE
IN
BOOL
执行位
Done
OUT
BOOL
完成位(1=完成)
该功能块用于将当前位置的**位置设置为预置值。功能块如图14,功能描述见表14。
图14
参数
类型
格式
单位
意义
EXECUTE
IN
BOOL
设置**位置的执行位
New_Pos
IN
DINT
Pulse
预置**位置
Done
OUT
BOOL
完成位(1=完成)
Error
OUT
BYTE
故障位(0=无故障)
C_Pos
OUT
DINT
Pulse
当前**位置
“Tune_Factor” 的较优值取决于较大、较小和目标脉冲频率以及较大减速时间。如图15:
图15
步骤如下:
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 由下面的公式计算得出:
图16
在寻找参考点的过程中由于起始位置、起始方向和终止方向的不同会出现很多种情况。
图17
图18
图19
图20