5.2 程序流程图
程序流程图如图5-5所示,1个主程序,3个子程序。
主程序
运行PLC 初始化安全灯 I0.1=0 I0.1=? I0.1=1 初始化运行指示灯 调用子程序0 调用子程序1 每10s调用1次子程序2 炉子加热
子程序0
初试化 温度高于限制温度 温度=? 温度低于限制温度 粗调 微调 返回 16
子程序1 子程序2
设定目标温度 读入温度并转换 把实际温度值放于VD30中 设定PID值 调用PID指令 返回 时间寄存器加10s 设定下一周期内的加热时间 返回
图 5-5 程序流程图
5.3助记符语言表
主程序
LD SM0.0 // SM0.0常ON LPS // 将SM0.0压栈 AR<= VD30, 105.0 // 如果温度小于105℃ S Q0.3, 1 // 使Q0.3保持ON R Q0.4, 1 // 使Q0.4保持OFF LPP // 弹出SM0.0
17
AR>= VD30, 105.0 // 如果温度大于105℃ S Q0.4, 1 // 使Q0.4保持ON R Q0.3, 1 // 使Q0.3保持OFF LD SM0.0 LPS
A I0.1 // 按下启动按扭,启动系统 AN I0.3 S M0.1, 1 R M0.2, 1 LPP
A I0.2 AN I0.3 R M0.1, 1 S M0.2, 1 LD SM0.0 AN I0.3 LPS
A M0.1
S M0.0, 1
R Q0.1, 1 S Q0.0, 1 LPP
A M0.2
S Q0.1, 1 R M0.0, 1
R Q0.0, 1 LD M0.0
CALL SBR0 LD M0.0
// I0.3为保护关开,一般情况下保持ON // 按下关闭按扭,停止运行 // 使停止指示灯(Q0.1)OFF // 使运行指示灯(Q0.0)ON // 使停止指示灯(Q0.1)ON // 使停止指示灯(Q0.0)OFF // 调用子程序0 18
CALL SBR1 // 调用子程序1 LD M0.0 LPS
AN M0.3 TON T50, 100 LPP A T50
= M0.3 LD M0.3
CALL SBR2 LD M0.0 AN I0.3 LPS
AN T52 TON T51, VW34 LRD AN T51
= Q0.5 LPP A T51 TON T52, VW36
LD M0.0 LPS
AR<= VD30, 84.0 S I0.4, 1 //每10S使中间继电器M0.3为ON //每10S调用一次子程序2 //T51炉子一个周期内的加热时间 //T51炉子一个周期内的非加热时间 //使继电器(Q0.5)接通,炉子加热
子程序0
//如果温度小于84℃ //使I0.4常ON
19
R I0.5, 1 //使I0.5常OFF LPP
AR>= VD30, 84.0 //如果温度大于84℃ S I0.5, 1 //使I0.5常ON R I0.4, 1 //使I0.4常OFF LD M0.0 //常ON继电器 AN M0.6
A I0.4 //如果I0.4为ON,则执行以下程序 MOVR 300.0, VD0 //输入P值300到VD0 MOVR 999999.0, VD4 //输入I值999999.0到VD4 MOVR 0.0, VD8 //输入D值0.0到VD8
MOVR 100.0, VD12 //输入设定温度值100.0到VD12 LD M0.0 AN M0.6
A I0.5 //如果I0.5为ON,则执行以下程序 MOVR 120.0, VD0 //输入P值120.0到VD0 MOVR 3.0, VD4 //输入I值3.0. 到VD4 MOVR 1.0, VD8 //输入D值1.0到VD8
MOVR 100.0, VD12 //输入设定温度值,100.0到VD12
子程序 1
LD SM0.0
MOVR VD12, VD104 //输入设定温度值 /R 3200.0, VD104 //把设定值归一化处理 MOVR VD0, VD112 //输入P值到PID回路中 MOVR 10.0, VD116 //输入采样时间到PID回路中 MOVR VD4, VD120 //输入I值到PID回路中 MOVR VD8, VD124 //输入D值到PID回路中
20