西门子S7-200 PLC指令简介及实例分析 下载本文

内容发布更新时间 : 2024/11/7 14:33:48星期一 下面是文章的全部内容请认真阅读。

DTR AC0, AC0 // 将双整数转换为实数

/R 32000.0, AC0 // 标准化数值

MOVR AC0, VD100 // 将标

准化PV写入回路参数表

LD I0.0

PID VB100, 0 //PID指令设置参数表起始地址为VB100,

LD SM0.0

MOVR VD108, AC0 // 将PID回路输出移至累加器 *R 32000.0, AC0 // 实际化数值

图6-18 恒压供水 PID控制

ROUND AC0, AC0 // 将实际化后的数值取整 DTI AC0, AC0 // 将双整数转换为整数 MOVW AC0, AQW0 // 将数值写入模拟输出

4. 梯形图程序

梯形图程序如图6-18所示。

6.5 时钟指令

利用时钟指令可以实现调用系统实时时钟或根据需要设定时钟,这对控制系统运行的监视、运行记录及和实时时间有关的控制等十分方便。时钟指令有两条:读实时时钟和设定实时时钟。指令格式如表6-18所示。

表6-18 读实时时钟和设定实时时钟指令格式

LAD STL TODR T TODW T 设定实时时钟指令:系统将包含当前时间和日期以地址T起始的8个字节的缓冲区装入PLC的时钟 功能说明 读取实时时钟指令:系统读取实时时钟当前时间和日期,并将其载入以地址T起始的8个字节的缓冲区 输入/输出T的操作数: VB, IB, QB, MB, SMB, SB, LB, *VD, *AC, *LD;数据类型:字节 指令使用说明:

(1)8个字节缓冲区(T)的格式如表6-19所示。所有日期和时间值必须采用BCD码表示,例如:对于年仅使用年份最低的两个数字,16#05代表2005年;对于星期,1代表星期日,2代表星期一,7代表星期六,0表示禁用星期。

表6-19 8字节缓冲区的格式

地址 含义 T 年 T+1 月 T+2 日 T+3 小时 T+4 分钟 T+5 秒 T+6 0 T+7 星期 0~7 范围 00~99 01~12 01~31 00~23 00~59 00~59 (2)S7-200 CPU不根据日期核实星期是否正确,不检查无效日期,例如2月31日为无效日期,但可以被系统接受。所以必须确保输入正确的日期。

(3)不能同时在主程序和中断程序中使用TODR/TODW指令,否则,将产生非致命错误(0007),SM4.3置1。

(4)对于没有使用过时钟指令或长时间断电或内存丢失后的PLC,在使用时钟指令前,要通过STEP-7软件“PLC”菜单对PLC时钟进行设定,然后才能开始使用时钟指令。时钟可以设定成与PC系统时间一致,也可用TODW指令自由设定。

【例6-9】编写程序,要求读时钟并以BCD码显示秒钟。程序如图6-19 所示。

说明:时钟缓冲区从VB0开始,VB5中存放着秒钟,第一次用SEG指令将字节VB100的秒钟低四位转换成七段显示码由QB0输出,接着用右移位指令将VB100右移四位,将其高四位变为低四位,再次使用SEG指令,将秒钟的高四位转换成七段显示码由QB1输出。

【例6-10】编写程序,要求控制灯的定时接通和断开。要求18:00时开灯,06:00时关灯。时钟缓冲区从VB0开始。程序如图6-20所示。

6.6 习题

1. 编写程序完成数据采集任务,要求每100ms采集一个数。 2. 编写一个输入/输出中断程序,要求实现: (1)从0到255的计数。

(2)当输入端I0.0为上升沿时,执行中断程序0,程序采用加计数。 (3)当输入端I0.0为下降沿时,执行中断程序1,程序采用减计数。 (4)计数脉冲为SM0.5。

3. 编写实现脉宽调制PWM的程序。要求从PLC的Q0.1输出高速脉冲,脉宽的初始值为0.5s,周期固定为5s,其脉宽每周期递增0.5s,当脉宽达到设定的4.5s时,脉宽改为每周期递减0.5s,直到脉宽减为0,以上过程重复执行。

4. 编写一高速计数器程序,要求:

(1)首次扫描时调用一个子程序,完成初始化操作。

(2)用高速计数器HSC1实现加计数,当计数值=200时,将当前值清0