首页 理论教育 时钟运算指令仿真实验——实训三十六

时钟运算指令仿真实验——实训三十六

时间:2023-07-01 理论教育 版权反馈
【摘要】:M8018:为ON时表示PLC安装有实时钟。M8019:设置的时钟数据超出了允许的范围。图4-94中的程序见随书光盘中的例程“时钟指令”。执行该指令时,内置的实时钟的时间立即变更,改为使用新的时间。除了TWR指令,其他时钟运算指令都可以仿真。此后计时表仍继续运行,其值达到16位数或32位数的最大值时停止定时。在做仿真实验时,令X窗口中的X2为ON,计时表开始运行。图4-98中的X0为ON时,TADD指令将D0~D2和D3~D5中的时钟数据相加后存入D6~D8。

时钟运算指令仿真实验——实训三十六

1.时钟数据

PLC内的实时钟的年、月、日、时、分和秒分别用D8018~D8013存放,D8019存放星期值见表4-4。

实时钟命令使用下述的特殊辅助继电器

M8015(时钟设置):为ON时时钟停止,在它由ON→OFF的下降沿写入时间。

M8016(时钟锁存):为ON时D8013~D8019中的时钟数据被冻结,以便显示出来,但是时钟继续运行。

M8017(±30s校正):在它由ON→OFF的下降沿时如果当前时间为0~29s,则修正为0s;如果为30~59s,则将秒变为0,向分进一位。

M8018(实时钟标志):为ON时表示PLC安装有实时钟。

M8019(设置错误):设置的时钟数据超出了允许的范围。

2.时钟数据读取指令

时钟数据读取指令TRD(FNC 166)如图4-94所示,用来读出PLC内置的实时钟的数据,并存放在目标操作数(D·)开始的7个字内。(D·)可以取T、C和D,只有16位运算。图4-94中的程序见随书光盘中的例程“时钟指令”。在秒时钟脉冲M8013的上升沿读出时钟数据,保存在D20~D26中,它们分别是年的低2位、月、日、时、分、秒和星期的值。

表4-4 时钟命令使用的寄存器

978-7-111-40437-8-Chapter04-112.jpg

978-7-111-40437-8-Chapter04-113.jpg

图4-94 时钟运算指令

3.时钟数据比较指令

图4-95中的时钟数据比较指令TCMP(FNC 160)的源操作数(S1·)、(S2·)和(S3·)分别用来存放指定时刻的时、分、秒,可以取任意数据类型的字软元件。时钟数据(S·)可以取T、C和D,目标操作数(D·)为Y、M和S,占用3个连续的位软元件。该指令用来比较指定时刻与时钟数据(S·)的大小。时钟数据的时、分、秒分别用(S·)~(S·)+2存放,比较结果用来控制(D·)~(D·)+2的ON/OFF。图4-95中的X1变为OFF后,目标软元件M0~M2的ON/OFF状态仍保持不变。

4.时钟数据区间比较指令

时钟数据区间比较指令TZCP(FNC 161)的源操作数(S1·)、(S2·)和(S·)可以取T、C和D,要求(S1·)≤(S2·),目标操作数(D·)为Y、M和S(占用3个连续的位软元件),只有16位运算。图4-96中(S1·)、(S2·)和(S·)分别占用3个数据寄存器,(S·)指定的D0~D2分别用来存放TRD读出的当前时、分、秒的值。

978-7-111-40437-8-Chapter04-114.jpg

图4-95 时钟数据比较指令

978-7-111-40437-8-Chapter04-115.jpg

图4-96 时钟数据区间比较指令(www.xing528.com)

(S·)中的时间与(S1·)和(S2·)指定的时间区间相比较,(S1·)>(S·)时M3为ON,(S·)>(S2·)时M5为ON,其他情况M4为ON。

5.路灯控制程序的仿真实验

图4-94中的D23~D25是TZCP指令指定的TRD读取的实时钟的时、分、秒的值,D27~D29是路灯的关灯时间,D30~D32是路灯的开灯时间。

在PLC开机时,M8002的常开触点接通一个扫描周期,用MOV指令设置关灯和开灯时间的时、分值,D29和D32中的秒值为默认值0。

图4-94中路灯关灯的时间为6:15~19:45,在该区间,指令TZCP比较的结果使M7为ON,因此用M7的常闭触点通过Y5控制路灯。

打开软元件批量监视对话框(见图4-97),可以看到D27~D29中的开灯时间、D30~D32中的关灯时间,以及D23~D25中的实时时间22时18分32秒。

978-7-111-40437-8-Chapter04-116.jpg

图4-97 软元件批量监视视图

在做仿真实验时,为了避免等待的时间太长,可以修改程序,将关灯时间和开灯时间设置得比当前时间略晚一点就可以了。

6.时钟数据写入指令

时钟数据写入指令TWR(FNC 167)的(S·)可以取T、C和D,只有16位运算。该指令用来将时间设定值写入内置的实时钟,写入的数据预先放在(S·)开始的7个单元内。执行该指令时,内置的实时钟的时间立即变更,改为使用新的时间。图4-98中的D33~D39分别存放年的低2位、月、日、时、分、秒和星期。X3为ON时,D33~D39中的预置值被写入实时钟。除了TWR指令,其他时钟运算指令都可以仿真。

978-7-111-40437-8-Chapter04-117.jpg

图4-98 时钟运算指令

7.计时表指令

计时表(小时定时器)指令HOUR(FNC 169)的(S·)可以选所有的数据类型,它是使报警器输出(D2·)(可以选X、Y、M和S)为ON所需的延时时间,单位为小时。(D1·)为当前的小时数,(D1·)+1是以s为单位的小于1h的当前值。为了在PLC断电时也连续计时,应选有断电保持功能的数据寄存器。

当前小时数(D1·)超过设置的延时时间(S·)时,例如在300h零1s,图4-98中的报警输出Y1变为ON。此后计时表仍继续运行,其值达到16位数(HOUR指令)或32位数(DHOUR指令)的最大值时停止定时。如果需要再次工作,则16位指令应清除(D1·)和(D1·)+1,32位指令应清除(D1·)~(D1·)+2。

在做仿真实验时,令X窗口中的X2为ON,计时表开始运行。D18中的小时值为0,D19中是以s为单位的小于1h的当前值,它每秒加1,达到3600时变为0,同时D18中的小时值加1。

8.时钟数据加、减法运算指令

时钟数据加、减法运算指令TADD(FNC 162)和TSUB(FNC 163)的(S1·)、(S2·)和(D·)指定的都是3个字的时钟数据(时、分、秒)。图4-98中的X0为ON时,TADD指令将D0~D2和D3~D5中的时钟数据相加后存入D6~D8。运算结果如果超过24h,则进位标志ON,其和减去24h后存入目标地址。TSUB指令用D9~D11中的时钟数据减去D12~D14 中的时钟数据,运算结果存入D15~D17。运算结果如果小于零,则借位标志ON,其差值加上24h后存入目标地址。

打开GX Simulator,启动软元件监视视图,生成X窗口、D窗口、Y窗口和M窗口。

分别在D窗口的D0~D2、D3~D5、D9~D11、D12~D14中输入时、分、秒的值,令X窗口中的X0为ON,观察D6~D8、D15~D17中时钟数据加、减法的运算结果是否正确(见图4-98)。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈