基于PLC风机偏航系统解缆控制(8)

2019-04-17 00:11

基于PLC风机偏航系统解缆控制 33

附录1

解缆控制程序:

(1)全局变量的定义程序

VAR_GLOBAL

UNTWIST_STEP: INT;

UNTWIST_CONTROL: WORD;

/1=UNTWIST STOP;2=CW;4=CCW;/

UNTWIST_STATUS: WORD; /1=UNTWIST STOP;2=CW;4=CCW;/ UNTWIST_MOTOR_CW AT %QX1.0 : BOOL; /偏航电机顺时针转动/ UNTWIST_MOTOR_CCW AT %QX1.1 : BOOL; /偏航电机逆时针转动/ UNTWIST_A_SENSOR AT %IX2.0 : BOOL; UNTWIST_A_SIGNAL: BOOL;

UNTWIST_B_SENSOR AT %IX2.1 : BOOL; UNTWIST_B_SIGNAL: BOOL; WIND_SPEED: INT;

/风速/

/风速传感器输入端口/

WIND_SPEED_INPUT AT %IW6 : WORD;

/位置传感器B/ /位置传感器A/

UNTWIST_CCW_LIMITED1_SWITCH AT %IX1.4 : BOOL; UNTWIST_CW_LIMITED1_SWITCH AT %IX1.5 : BOOL; UNTWIST_CCW_LIMITED2_SWITCH AT %IX1.6: BOOL; UNTWIST_CW_LIMITED2_SWITCH AT %IX1.7 : BOOL; X1: INT X: INT

/风机初始位置/ /风机纽缆角度/

END_VAR

VAR_GLOBAL RETAIN

(2)主程序MAIN

局部变量定义: PROGRAM MAIN VAR END_VAR

程序部分:

/主程序/

UNTWIST_PULSE: INT; UNTWIST_POSITION: INT;

END_VAR

基于PLC风机偏航系统解缆控制 34

SC_CONTROL(); /紧急停止/

READ_WIND_SPEED();

UNTWIST();

IF UNTWIST_STATUS=2 OR UNTWIST_STATUS=4 THEN /读取纽缆的角度/ X:= UNTWIST _POSITION-X1 END_IF

IF X=0 AND(UNTWIST_STATUS=2 OR UNTWIST_STATUS=4) THEN /当风机反

向旋转相同角度后,结束解缆/

UNTWIST_CONTROL:=1; UNTWIST_STATUS:=1; END_IF

(3)程序READ_WIND_SPEED

局部变量定义:

PROGRAM READ_WIND_SPEED VAR END_VAR

程序部分:

IF UNTWIST STATUS=1 THEN END_IF

IF WIND_SPEED<=25 AND X=720 AND UNTWIST_STATUS=1 THEN /当风速小于

25m/s且纽缆到达2圈时,进行解缆/

UNTWIST_CONTROL:=2 OR UNTWIST_CONTROL:=4; END_IF

IF WIND_SPEED>=25 AND UNTWIST_CCW_LIMITED1_SWITCH=1 OR UNTWIST_CW_LIMITED1_SWITCH=1 UNTWIST_STATUS=1 THEN

/当风速大

于25m/s且纽缆达到3圈时,进行解缆/ /读取风速/

WIND_SPEED:=WIND_SPEED_INPUT*125/65534-25/2;

/读取风速程序/

/解缆程序/ /读取风速/

基于PLC风机偏航系统解缆控制 35

UNTWIST_CONTROL:=2 OR UNTWIST_CONTROL:=4 END_IF

(4)UNTWIST 解缆程序

局部变量:

PROGRAM UNTWIST VAR END_VAR

程序部分:

IF UNTWIST_CONTROL=1 THEN /解缆停止/ UNTWIST_MOTOR_CCW:=0; UNTWIST_MOTOR_CW:=0; UNTWIST_STATUS:=1; END_IF

IF UNTWIST_CONTROL=2 THEN /顺时针解缆/ UNTWIST_MOTOR_CCW:=0; UNTWIST_MOTOR_CW:=1; UNTWIST_STATUS:=2; END_IF

IF UNTWIST_CONTROL=4 THEN /逆时针解缆/ UNTWIST_MOTOR_CCW:=1; UNTWIST_MOTOR_CW:=0; UNTWIST_STATUS:=4; END_IF

(5)SC_CONTROL

局部变量:

PROGRAM SC_CONTROL VAR END_VAR

程序部分:

/强制停止程序/

/解缆控制程序/

基于PLC风机偏航系统解缆控制 36

IF UNTWIST_CCW_LIMITED2_SWITCH=1 THEN UNTWIST_MOTOR_CCW:=0; UNTWIST_MOTOR_CW:=0; UNTWIST_STATUS:=1; END_IF

IF UNTWIST_CW_LIMITED2_SWITCH=1 THEN UNTWIST_MOTOR_CCW:=0; UNTWIST_MOTOR_CW:=0; UNTWIST_STATUS:=1; END_IF

(5)程序TWIST_ANGLE

局部变量:

PROGRAM TWIST_ANGLE VAR

程序部分:

A_High(CLK:=TWIST_A_SENSOR ); A_LOW(CLK:=TWIST_A_SENSOR); B_LOW(CLK:=TWIST_B_SENSOR);

UNTWIST_A_SIGNAL:= UNTWIST_A_SENSOR;

UNTWIST_B_SIGNAL:= UNTWIST_B_SENSOR;

A_LOW: F_TRIG; B_HIGH: R_TRIG; B_LOW: F_TRIG; A_HIGH: R_TRIG;

/绕缆达到四圈/

/纽缆及解缆角度计算/

END_VAR

/位置传感器A上跳变/ /位置传感器A下跳变/ /位置传感器B上跳变/ /位置传感器B下跳变/

B_HIGH(CLK:=TWIST_B_SENSOR);

IF NOT UNTWIST_A_SIGNAL AND NOT UNTWIST_B_SIGNAL THEN /AB状态为00/

UNTWIST _STEP:=1;

基于PLC风机偏航系统解缆控制 37

END_IF

IF UNTWIST_A_SIGNAL AND NOT UNTWIST_B_SIGNAL THEN/AB状态为10/ UNTWIST _STEP:=2; END_IF

IF UNTWIST _A_SIGNAL AND UNTWIST _B_SIGNAL THEN/AB状态为11/ UNTWIST _STEP:=3; END_IF

IF NOT UNTWIST _A_SIGNAL AND UNTWIST _B_SIGNAL THEN/AB状态为01/

UNTWIST _STEP:=4; END_IF

CASE UNTWIST _STEP OF

1: IF A_HIGH.Q AND NOT UNTWIST _B_SIGNAL THEN UNTWIST _PULSE := UNTWIST _PULSE +1; END_IF

IF B_HIGH.Q AND NOT UNTWIST _A_SIGNAL THEN UNTWIST _PULSE := UNTWIST _PULSE -1; END_IF

2: IF B_HIGH.Q AND UNTWIST _A_SIGNAL THEN UNTWIST _PULSE := UNTWIST _PULSE +1; END_IF

IF A_LOW.Q AND NOT UNTWIST _B_SIGNAL THEN UNTWIST _PULSE := UNTWIST _PULSE -1; END_IF

3: IF A_LOW.Q AND UNTWIST _B_SIGNAL THEN UNTWIST _PULSE := UNTWIST _PULSE +1; END_IF

IF B_LOW.Q AND UNTWIST A_SIGNAL THEN UNTWIST _PULSE := UNTWIST _PULSE -1; END_IF


基于PLC风机偏航系统解缆控制(8).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:《学校与社会 明日之学校》之读书笔记

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: