当前位置:首页 >> 机械/仪表 >>

自编西门子PLC单向电机控制程序块


*****************************************************************************************************************
********************************************单*向*电*机*控*制****************

************************************
*********************************************************************************************************杨建伟**
************************************************安装说明*********************************************************
*将文件解压到西门子安装文件的S7LIBS文件夹里面,然后用step7打开库文件就可以找到Motor, *
*例如:西门子step7软件装在C盘则解压到“C:\Program Files\Siemens\Step7\S7LIBS” *
*例如:西门子step7软件装在D盘则解压到“D:\Program Files\Siemens\Step7\S7LIBS” * *QQ:357848936 *
*Email:jw_yang1985@163.com *
*****************************************************************************************************************


*****************************************************数据输入****************************************************

序号 名称 数据类型 初始值 描述
_________________________________________________________________________________________________________________
1 MotorControlMode BYTE 0 电机控制模式。0-闭锁模式,1-自动模式,2-手动模式。
_________________________________________________________________________________________________________________
2 MainPower BOOL TRUE 主电源。TRUE-主电源上电,FALSE-主电源断电。
_________________________________________________________________________________________________________________
3 PowerAC380V BOOL FALSE 电机380V.AC电源。TRUE-上电,FALSE-断电。
_________________________________________________________________________________________________________________
4 PowerAC220V BOOL TRUE 电机220V.AC电源。TRUE-上电,FALSE-断电。
_________________________________________________________________________________________________________________
5 PowerDC24V BOOL TRUE 电机24V.DC电源。TRUE-上电,FALSE-断电。
_________________________________________________________________________________________________________________
6 MotorReadyed BOOL FALSE 电机准备就绪。TRUE-电机馈电器就绪,FALSE-电机馈电

器未就绪。
_________________________________________________________________________________________________________________
7 Pick_upContactor BOOL FALSE 电机接触器反馈。TRUE-电机接触器吸合,FALSE-电机接

触器未吸合。
_________________________________________________________________________________________________________________
8 LocalSwitch BOOL FALSE 电机本地开关。TRUE-闭合,FALSE-断开。
_________________________________________________________________________________________________________________
9 ManuStartStop BOOL FALSE 电机手动启动/停止。电机在手动模式下,如果电机处于

停机状态,ManuStartStop由FALSE变为TRUE时电机启动,

如果电机处于运转状态,ManuStartStop由FALSE变为

TRUE时电机停止运转。
_________________________________________________________________________________________________________________
10 AutoStartEnable BOOL FALSE 电机自动启动使能。TRUE-运行自动启动,FALSE-不允许

自动启动。
_________________________________________________________________________________________________________________
11 AutoReady BOOL FALSE 电机自动就绪。电机在自动模式下,TRUE-自动已就绪,

FALSE-自动未就绪。
_________________________________________________________________________________________________________________
12 AutorStartStop BOOL FALSE 电机自动启动停止。电机在自动模式下,TRUE-电机自动

启动,FALSE-停止。
_________________________________________________________________________________________________________________
13 MotorLocked BOOL TRUE 电机锁定。TRUE-解锁,FALSE-锁定。
_________________________________________________________________________________________________________________
14 AutoReadyTimer_ON TIMER T#0MS 电机自动就绪延时通。电机在自动模式下。
_________________________________________________________________________________________________________________
15 AutorStartStopTimer_ON TIMER T#0MS 电机自动启动延时通。电机在自动模式下。
_________________________________________________________________________________________________________________


*****************************************************数据输出****************************************************


序号 名称 数据类型 初始值 描述
_________________________________________________________________________________________________________________
1 MotorReady BOOL FALSE 电机中间位,准备就绪。TRUE-准备就绪,FALSE-未就绪。
_________________________________________________________________________________________________________________
2 MotorRun BOOL FALSE 电机运行。TRUE-运行,FALSE-停止。
_________________________________________________________________________________________________________________
3 MotorRuningLamp BOOL FALSE 电机运转指示灯。TRUE-运转,FALSE-停止。
_________________________________________________________________________________________________________________
4 MotorState WORD FALSE 电机状态。

1.闭锁模式。
2.自动模式。
3.手动模式。
4.主电源。TRUE-主电源上电,FALSE-主电源断电。
5.电机380V.AC电源。TRUE-上电,FALSE-断电。
6.电机220V.AC电源。TRUE-上电,FALSE-断电。
7.电机24V.DC电源。TRUE-上电,FALSE-断电。
8.电机锁定。TRUE-解锁,FALSE-锁定。
9.电机中间位,准备就绪。TRUE-准备就绪,FALSE-
未就绪。
10.电机运行。TRUE-运行,FALSE-停止。
11.电机运转就绪。TRUE-就绪,FALSE-未就绪。
12.电机准备就绪。TRUE-电机馈电器就绪,FALSE-电机
馈电器未就绪。
13.电机本地开关。TRUE-闭合,FALSE-断开。
14.电机自动启动使能。TRUE-运行自动启动,FALSE-不
允许自动启动。
15.电机自动就绪。电机在自动模式下,TRUE-自动已就
绪,FALSE-自动未就绪。
16.电机自动启动停止。电机在自动模式下,TRUE-电机
自动启动,FALSE-停止。
_________________________________________________________________________________________________________________









程序
FUNCTION_BLOCK FB***
TITLE = 'MotorControl1'
//
// 单向普通电机控制
//
VERSION: '1.0'
AUTHOR:YJianWei
NAME:ChangGao
FAMILY:Motor1
KNOW_HOW_PROTECT
// Block Parameters
(*********************定义常量参数*********************)
CONST// Constants

END_CONST
(*********************定义输入参数*********************)
VAR_INPUT// Input Parameters
MotorControlMode : BYTE := B#16#0 ; // 电机控制模式。0-闭锁模式,1-自动模式,2-手动模式。
MainPower : BOOL := TRUE ; // 主电源。TRUE-主电源上电,FALSE-主电源断电。
PowerAC380V : BOOL := FALSE ; // 电机380V.AC电源。TRUE-上电,FALSE-断电。
PowerAC220V : BOOL := TRUE ; // 电机220V.AC电源。TRUE-上电,FALSE-断电。
PowerDC24V : BOOL := TRUE ; // 电机24V.DC电源。TRUE-上电,FALSE-断电。
MotorReadyed : BOOL := FALSE ; // 电机准备就绪。TRUE-电机馈电器就绪,FALSE-电机馈电器未就绪。
Pick_upContactor : BOOL := FALSE ; // 电机接触器反馈。TRUE-电机接触器吸合,FALSE-电机接触器未吸合。
LocalSwitch : BOOL := FALSE ; // 电机本地开关。TRUE-闭合,FALSE-断开。
ManuStartStop : BOOL := FALSE ; // 电机手动启动/停止。电机在手动模式下,如果电机处于停机状态,ManuStartStop由FALSE变为TRUE时电机 //启动,如果电机处于运转状态,TRUE时电机停止运转。ManuStartStop由FALSE变为TRUE时电机停止运转。
AutoStartEnable : BOOL := FALSE ; // 电机自动启动使能。TRUE-运行自动启动,FALSE-不允许自动启动。
AutoReady : BOOL := FALSE ; // 电机自动就绪。电机在自动模式下,TRUE-自动已就绪,FALSE-自动未就绪。
AutorStartStop : BOOL := FALSE ; // 电机自动启动停止。电机在自动模式下,TRUE-电机自动启动,FALSE-停止。
MotorLocked : BOOL := TRUE ; // 电机锁定。TRUE-解锁,FALSE-锁定。
AutoReadyTimer_ON : TIME := T#0MS ; // 电机自动就绪延时通时间设定。电机在自动模式下。
AutorStartTimer_ON : TIME := T#0MS ; // 电机自动启动延时通时间设定。电机在自动模式下。
END_VAR
(*******************定义输入输出参数*******************)
VAR_IN_OUT// I/O Parameters

END_VAR
(*********************定义输出参数*********************)
VAR_OUTPUT// Output Parameters
MotorReady : BOOL := FALSE ; // 电机中间位,准备就绪。TRUE-准备就绪,FALSE-未就绪。
MotorRun : BOOL := FALSE ; // 电机运行。TRUE-运行,FALSE-停止。
MotorRuningLamp : BOOL := FALSE ; // 电机运转指示灯。TRUE-运转,FALSE-停止。
MotorState : WORD := W#16#0 ; // 电机状态。
END_VAR
(*********************定义临时参数*********************)
VAR_TEMP// Temporary Variables
Automatism : BOOL ; // 自动模式
Atresia : BOOL ; // 闭锁模式
Manual : BOOL ; // 手动模式
AutoReadyTimerOUT : BOOL ;
AutoStartTimerOUT : BOOL ;
MotorStates : WORD ; // 电机状态
MotorStateST AT MotorStates : STRUCT
Atresia : BOOL; // 闭锁模式。
Automatism : BOOL; // 自动模式。
Manual : BOOL; // 手动模式。
MainPower : BOOL; // 主电源。TRUE-主电源上电,FALSE-主电源断电。
PowerAC380V : BOOL; // 电机380V.AC电源。TRUE-上电,FALSE-断电。
PowerAC220V : BOOL; // 电机220V.AC电源。TRUE-上电,FALSE-断电。
PowerDC24V : BOOL; // 电机24V.DC电源。TRUE-上电,FALSE-断电。
MotorLocked : BOOL; // 电机锁定。TRUE-解锁,FALSE-锁定。
MotorReady : BOOL; // 电机中间位,准备就绪。TRUE-准备就绪,FALSE-未就绪。
MotorRun : BOOL; // 电机运行。TRUE-运行,FALSE-停止。
SysReady : BOOL; // 电机运转就绪。TRUE-就绪,FALSE-未就绪。
MotorReadyed : BOOL; // 电机准备就绪。TRUE-电机馈电器就绪,FALSE-电机馈电器未就绪。
LocalSwitch : BOOL; // 电机本地开关。TRUE-闭合,FALSE-断开。
AutoStartEnable : BOOL; // 电机自动启动使能。TRUE-运行自动启动,FALSE-不允许自动启动。
AutoReady : BOOL; // 电机自动就绪。电机在自动模式下,TRUE-自动已就绪,FALSE-自动未就绪。
AutorStartStop : BOOL; // 电机自动启动停止。电机在自动模式下,TRUE-电机自动启动,FALSE-停止。
END_STRUCT;
END_VAR
(*********************定义有效参数*********************)
VAR// Static Variables
ManualStart : BOOL ; // 手动启动标志。
ManualStartMid : BOOL ; // 手动启动中间标志。
SysReady : BOOL ; // 系统就绪。
AutoReadyUP : BOOL ; // 自动准备上升沿。
AutoStartUP : BOOL ; // 自动启动上升沿。
AutoReadyMid : BOOL ; // 自动准备上升沿。
AutoStartMid : BOOL ; // 自动启动上升沿。
AutoReadyTimerON : TON ; // 电机自动就绪延时通。
AutorStartTimerON : TON ; // 电机自动启动延时通。
Pick_upContactorTimer : TON ; // 接触器闭合延时时间检查。
END_VAR
(*********************定义标签参数*********************)
LABEL

END_LABEL
(*********************控制程序开始*********************)
BEGIN// Statement Section

(*控制模式转换,转换为BOOL*)
Atresia:=(MotorControlMode=16#00);//闭锁
Automatism:=(MotorControlMode=16#01);//自动
Manual:=(MotorControlMode=16#02);//手动

(*将电机每个状态转换为字输出*)
MotorStateST.Atresia:=Atresia; // 闭锁模式。
MotorStateST.Automatism:=Automatism; // 自动模式。
MotorStateST.Manual:=Manual; // 手动模式。
MotorStateST.MainPower:=MainPower; // 主电源。TRUE-主电源上电,FALSE-主电源断电。
MotorStateST.PowerAC380V:=PowerAC380V; // 电机380V.AC电源。TRUE-上电,FALSE-断电。
MotorStateST.PowerAC220V:=PowerAC220V; // 电机220V.AC电源。TRUE-上电,FALSE-断电。
MotorStateST.PowerDC24V:=PowerDC24V; // 电机24V.DC电源。TRUE-上电,FALSE-断电。
MotorStateST.MotorLocked:=MotorLocked; // 电机锁定。TRUE-解锁,FALSE-锁定。
MotorStateST.MotorReady:=MotorReady; // 电机中间位,准备就绪。TRUE-准备就绪,FALSE-未就绪。
MotorStateST.MotorRun:=MotorRuningLamp; // 电机运行。TRUE-运行,FALSE-停止。
MotorStateST.SysReady:=SysReady; // 电机运转就绪。TRUE-就绪,FALSE-未就绪。
MotorStateST.MotorReadyed:=MotorReadyed; // 电机准备就绪。TRUE-电机馈电器就绪,FALSE-电机馈电器未就绪。
MotorStateST.LocalSwitch:=LocalSwitch; // 电机本地开关。TRUE-闭合,FALSE-断开。
MotorStateST.AutoStartEnable:=AutoStartEnable; // 电机自动启动使能。TRUE-运行自动启动,FALSE-不允许自动启动。
MotorStateST.AutoReady:=AutoReady; // 电机自动就绪。电机在自动模式下,TRUE-自动已就绪,FALSE-自动未就绪。
MotorStateST.AutorStartStop:=AutorStartStop; // 电机自动启动停止。电机在自动模式下,TRUE-电机自动启动,FALSE-停止。

(*延时通功能调用*)
AutoReadyTimerON(IN:=AutoStartEnable AND AutoReady AND Automatism AND SysReady,
PT:=AutoReadyTimer_ON);//自动准备延时。
AutorStartTimerON(IN:=MotorReady AND AutorStartStop AND Automatism AND SysReady,
PT:=AutorStartTimer_ON);//自动启动延时。
Pick_upContactorTimer(IN:=MotorRun AND NOT Pick_upContactor ,
PT:=T#500MS);//运行反馈检测。

(*如果输入的时间为0则跳过时间控制,直接输出(判断输入时间是否为0)*)

IF AutoReadyTimer_ON = T#0MS AND AutoStartEnable AND AutoReady AND Automatism AND SysReady THEN
// 自动准备好延时时间设定为0时,直接输出。
AutoReadyTimerOUT:=TRUE;
ELSE
// 自动准备好延时时间设定不为0时,延时输出。
AutoReadyTimerOUT:=AutoReadyTimerON.Q;
END_IF;
IF AutorStartTimer_ON = T#0MS AND MotorReady AND AutorStartStop AND Automatism AND SysReady THEN
// 自动启动延时时间设定为0时,直接输出。
AutoStartTimerOUT:=TRUE;
ELSE
// 自动启动延时时间设定不为0时,延时输出。
AutoStartTimerOUT:=AutorStartTimerON.Q;
END_IF;

(*系统就绪*)
SysReady:=MotorStateST.MainPower AND MotorStateST.PowerAC380V AND MotorStateST.PowerAC220V AND MotorStateST.PowerDC24V AND MotorStateST.MotorReadyed AND MotorStateST.LocalSwitch AND MotorStateST.MotorLocked;

(*手动控制本地按钮启动停止功能*)
ManualStart:=(ManuStartStop AND NOT ManualStartMid) OR ManualStart AND (NOT ManualStartMid OR NOT ManuStartStop) AND SysReady AND NOT Pick_upContactorTimer.Q;
ManualStartMid:=(NOT ManuStartStop AND ManualStart) OR ManualStartMid AND (ManualStart OR ManuStartStop);

(*自动控制启动停止功能*)
AutoReadyMid:=((AutoReadyTimerOUT AND AutoReadyUP) OR AutoReadyMid) AND AutoReady AND SysReady AND MotorStateST.AutoReady AND Automatism;
AutoStartMid:=((AutoStartTimerOUT AND AutoStartUP) OR AutoStartMid) AND AutorStartStop AND SysReady AND MotorStateST.AutoReady AND Automatism AND NOT Pick_upContactorTimer.Q;
AutoReadyUP:=NOT AutoReadyTimerOUT;
AutoStartUP:=NOT AutoStartTimerOUT;

(*电机启动控制*)
MotorReady:=(AutoReadyMid AND MotorStateST.AutoReady) OR (Manual AND SysReady) ;
MotorRun:=(AutoStartMid OR ManualStart) AND MotorReady AND (NOT Pick_upContactorTimer.Q OR Pick_upContactor);
MotorRuningLamp:=Pick_upContactor AND MotorRun;
MotorState:=MotorStates;
END_FUNCTION_BLOCK








相关文章:
plc控制电机西门子
plc控制电机西门子_工学_高等教育_教育专区。plc控制电机西门子实验一 基于 PLC 控制方式的三相异步电动机点动和自锁控制 ... 2 实验二 基于 PLC 控制方式的三相...
西门子S7-200系列PLC控制步进电机的编程方法
西门子S7-200系列PLC控制步进电机的编程方法_电子/电路_工程科技_专业资料。步进电机驱动器是一种将电脉冲转化为角位移的执行机构。 当步进驱动器接 收到一个脉冲...
项目一 电动机的单向连续运行的PLC控制(《PLC基础与实...
电动机单向连续运行控制 授课类型 理论课 知识点: 1、掌握可编程序控制器的...(Allen&Bradly)公司,GE-Fanuc 公司, 德国的西门子(SIEMENS)公司 法国的施耐德(...
PLC控制交流电机正反转的编程(西门子)
PLC控制交流电机正反转的编程(西门子)_计算机软件及应用_IT/计算机_专业资料。用...接下来我们将编好的程序下载到 S7---200PLC 系统中,下载完毕后通电试 验,...
步进电机的西门子PLC控制
步进电机西门子PLC控制_工学_高等教育_教育专区。...(T1 为单相励磁转矩) ,而二相 电动机为 2T1,...它采用可编程序的存储器, 其内部存贮执行逻辑运算、...
西门子PLC控制步进电机的设计
西门子 PLC 控制步进电机的设计 步进电机发展步进电机现状 自问世以来,步进电机很快确定了在开环高分辨率的定位系统中的主导地 位。在工业技术高速发展的今天,还未有...
西门子PLC实验指导书
4.根据实验内容,在西门子 STEP 7 编程环境下输入梯形图程序,转换后, 下载到 ...PLC 控制 图 2 三相笼型异步电动机全压起动单向运行 PLC 控制梯形图 五、...
PLC作业
5 模块 1 认知西门子 S7-200 一、填空: 可编...电动机定子绕组串接减压启动控制主电路及 PLC 控制...电动机单向连续运行电路 1、接触器—继电器控制的...
西门子PLC课程设计三相六拍步进电动机控制程序的设计与...
西门子PLC课程设计三相六拍步进电动机控制程序的设计与调试_工学_高等教育_教育专区...7 2.2.2 输入输出编址 ... 7 2.2.3 状态真值表 ......
西门子PLC程序下载_图文
西门子PLC程序下载_电子/电路_工程科技_专业资料。西门子 PLC 下载 首先将西门子...把测试运行电机 停止, 根据刷新出来的 PLC 远程地址,在左边设置,电机设置 PG/...
更多相关标签:
西门子plc电机正反转 | 西门子plc步进电机 | 西门子plc与伺服电机 | 西门子plc接步进电机 | 西门子plc | 西门子plc编程软件 | 西门子plc官网 | 西门子plc学习教材 |