问: 1.根据PLC系统时间,当其在某一时间段如(11-25至03-22)则进入冬天程序控制,否则为夏天控制.请问如何进行以上判断及操作?
2.有三台电机为循环控制,如昨天运行1#机,则今天运行2#机,明天运行3#机,后天又运行1#机,如此反复.但用定时器最多满足不了定时要求.问要实现以上功能该如何编程序?
答:NO.1
用SFC0设置时间,SFC1读出时间进行比较。方法如下:
1、建立一共享数据块,比如DB1,SYMBOLS设为AA(DB1和AA可以任意设定,在此只是举例)
2、打开数据块DB1,进行变量声明:(第1个字由系统占用,我们从第2个字开始)在NAME栏中声明名称为DW2,TYPE栏中声明变量类型为“DATE_AND_TIME”,初始值自动生成。同样在声明DW10。每个变量占用8个字节,分别代表年、月、日、时、分、秒、星期。
3、在OB1里调用DB1
4、设定时间:调用SFC0,在PDT端输入“AA”.DW2,在RET_VAL端输入一个字,比如MW100
5、读出时间:调用SFC1,在CDT端输入“AA”.DW10,在RET_VAL端输入一个字,比如MW102
6、在DB1中,自DB1.DBW2到DB1.DBW9存放须设定的年、月、日、时、分、秒、星期的值;自DB1.DBW10到DB1.DBW17存放实际的年、月、日、时、分、秒、星期的值;
7、比较DB1.DBW10到DB1.DBW17的值和你需要的值,进行你的比较操作。
说明:STEP7中有这方面的介绍,大致是在OB1里面进行变量声明,进行时间的设定和取出,由于取出的值不能直接应用,再通过FC6、7、8等转换出来,我觉得很麻烦,因此应用如上方法实现。
NO.2
取出当前日期存入MB1,同时置位M0.1,启动M1
M0.1的上升沿(必须用边沿触发)将MB1送入MB2
一直比较MB1和MB2,如相等,M1继续运行;
如不相等,加上M0.1置位M0.2,同时复位M0.1,启动M2
同理,在M0.2接通时,如果数据不等,置位M0.3,同时复位M0.2启动M3
同理,在M0.3接通时,如果数据不等,置位M0.1,同时复位M0.3启动M1
注意:MB1送入MB2的条件必须使用边沿,否则MB1和Mb2总是相等,无法比较。
本文关键字:暂无联系方式PLC工业控制,电器控制 - PLC工业控制