上篇文章讲述的是PLC的时钟与部分指令,显然,PLC也可以作为时钟用于查看时间,但我想,没有谁会专门买个PLC做钟表用吧?

三菱plcfx2n编写计时指令(三菱FXPLC基础指令时钟处理指令)(1)

所以上篇文章所分享的指令是时钟数据读/写指令,即TRD和TWR。

三菱FX PLC基础 | 时钟处理指令知识分享

这次我们继续解读,时钟的其他指令,分别是时钟数据比较指令TCMP、时钟数据区间比较指令TZCP、时钟数据加法指令TADD、时钟数据减法指令TSUB。

三菱plcfx2n编写计时指令(三菱FXPLC基础指令时钟处理指令)(2)

观察以上4个指令,大家是否觉得似曾相识?

回顾我之前分享的比较指令和数值运算指令,前提是你们看过的话,就会发现,它们是多么的相似!

三菱plcfx2n编写计时指令(三菱FXPLC基础指令时钟处理指令)(3)

既然如此相似,那么它们的区别在哪呢?我们接着往下看。

01、TCMP时钟数据比较指令

TCMP指令的编程手册截图如下图26-1所示。从图可知,TCMP指令只适用于16位,有连续执行型和脉冲执行型两种。

三菱plcfx2n编写计时指令(三菱FXPLC基础指令时钟处理指令)(4)

图26-1

TCMP指令是一个时钟比较指令,即它比较的是时间,这里的时间显然不是年月日,而是时分秒。其梯形图形式截图如下图26-2所示。

三菱plcfx2n编写计时指令(三菱FXPLC基础指令时钟处理指令)(5)

图26-2

TCMP指令有5个操作数S1、S2、S3、S、D,它们的含义如下:

S1:指定比较基准时间的“时”或其存储地址;

S2:指定比较基准时间的“分”或其存储地址;

S3:指定比较基准时间的“秒”或其存储地址;

S :指定时间数据的存储首地址,占3个点,即S、S 1、S 2分别存储时间数据的时、分、秒;

D :根据比较结果输出ON/OFF,占3个点,且D、D 1、D 2在驱动条件断开后仍能对当前状态保持不变。

其中,时间数据的“时”设定范围为0~23,“分”和“秒”的设定范围为0~59。从图26-2所示可以看到,当驱动条件成立时,将指定的时间数据(S、S 1、S 2)与基准时间(S1、S2、S3)进行大小比较,根据比较结果驱动位元件D、D 1、D 2中的一个。

三菱plcfx2n编写计时指令(三菱FXPLC基础指令时钟处理指令)(6)

图26-3

如图26-3,位元件的驱动依据如下:

(1)当时间数据S:S 1:S 2(时:分:秒)<基准时间S1:S2:S3(时:分:秒)时,D为ON;

(2)当时间数据S:S 1:S 2(时:分:秒)= 基准时间S1:S2:S3(时:分:秒)时,D 1为ON;

(3)当时间数据S:S 1:S 2(时:分:秒)>基准时间S1:S2:S3(时:分:秒)时,D 2为ON。

和数据比较指令CMP想比较,显然TCMP的约束比较多,首先是操作数,TCMP指令中的操作数有5个,占用软元件有9个,而CMP指令操作数有3个,占用5个软元件。

其次是所比较的数据,TCMP比较的是时间数据,所以数据设定范围有规定,但CMP指令的数据没有设定范围(除了字元件本身的存储范围)。

另外,TCMP指令只适用于16位,而CMP可用于32位。

总的来说,两个指令都是数据的比较,而且都是根据比较结果驱动相应的位元件。

三菱plcfx2n编写计时指令(三菱FXPLC基础指令时钟处理指令)(7)

对于时间大小的比较,这个就不用我解释了吧?会有人认为5点钟比6点钟大的吗?这已经是常识了~

知道了TCMP指令后,我们继续看TZCP指令。

02、TZCP时钟数据区间比较指令

TZCP指令的编程手册截图如下图26-3所示。从图可知,TZCP指令也只适用于16位,有连续执行型和脉冲执行型两种。

三菱plcfx2n编写计时指令(三菱FXPLC基础指令时钟处理指令)(8)

图26-4

知道了TCMP指令,想来TZCP指令的解读也不难,它和ZCP指令非常类似。TZCP指令有4个操作数S1、S2、S、D,如下图26-5所示,比TCMP少了一个,但TZCP指令占用的软元件比TCMP多。各个操作数的含义如下:

S1:指定比较基准下限时间的“时”或其存储地址,占用3个点;

S2:指定比较基准上限时间的“时”或其存储地址,占用3个点;

S :指定时间数据的“时”的存储地址,占3个点,即S、S 1、S 2分别存储时间数据的时、分、秒;

D :根据比较结果输出ON/OFF,占3个点,且D、D 1、D 2在驱动条件断开后仍能对当前状态保持不变。

三菱plcfx2n编写计时指令(三菱FXPLC基础指令时钟处理指令)(9)

图26-5

根据各个操作数的定义,可以看到,TZCP指令共占用了12个软元件,使用时一定要注意这些软元件是否被共享。

TZCP指令的执行功能如下:

(1)当时间数据S:S 1:S 2(时:分:秒)<下限时间S1:S1 1:S1 2(时:分:秒)时,D为ON;

(2)当下限时间S1:S1 1:S1 2(时:分:秒)≤时间数据S:S 1:S 2(时:分:秒)≤上限时间S2:S2 1:S2 2(时:分:秒)时,D 1为ON;

(3)当时间数据S:S 1:S 2(时:分:秒)>上限时间S2:S2 1:S2 2(时:分:秒)时,D 2为ON。

TZCP指令和ZCP指令的区别类似于TCMP指令和CMP指令,在此不再赘述。

03、TADD时钟数据加法指令和TSUB时钟减法指令

TADD指令和TSUB指令的编程手册截图如下图26-6所示,两条指令的执行形式、适用软元件都一样,分别用于时钟数据的相加减。

时钟的相加减,进制显然不是简单的十进制或二进制,小白都知道,“时”的进制为24,“分”和“秒”的进制为60。

三菱plcfx2n编写计时指令(三菱FXPLC基础指令时钟处理指令)(10)

图26-6

时间的相加如下图26-7所示,把6时10分30秒和2时30分30秒相加,秒钟相加满60,进一位到分钟,最终得到的结果为8时41分0秒;

再如16时10分30秒和10时30分20秒相加,16时加10时等于26小时,此时小时数超过24,产生进位,进位标志位M8022将为ON。

三菱plcfx2n编写计时指令(三菱FXPLC基础指令时钟处理指令)(11)

图26-7

同理,时间的相减如下图26-8所示,把6时10分30秒和2时30分30秒相减,10分钟减30分钟不够减,向“时”借1(60分钟)变为70分钟,6时被借1后变为5时,最终得到的结果为3时40分0秒;

再如10时30分30秒和16时20分10秒相减,10时减16时不够减,时间不能为负,所以10小时借1(24小时)变为34小时,再减去16小时,由于有借位,所以借位标志位M8021将为ON。

三菱plcfx2n编写计时指令(三菱FXPLC基础指令时钟处理指令)(12)

图26-8

另外,若时间相加或相减后的结果为0(包括产生进位或借位后的结果),零位标志位M8020也将置ON。

TADD指令和TSUB指令的梯形图形式如下图26-9所示,它们都有3个操作数S1、S2、D,共占用9个点。

三菱plcfx2n编写计时指令(三菱FXPLC基础指令时钟处理指令)(13)

图26-9

这些操作数的含义如下:

S1:被加数(被减数)时间数据中“时”的元件地址,占用3个点;

S2:加数(减数)时间数据中“时”的元件地址,占用3个点;

D :S1 S2的和(S1-S2的差)时间数据中“时”的元件地址,占用3个点;

在TADD指令中,当驱动条件成立时,将S1(时):S 1(分):S 2(秒)的时间数据加上S2(时):S2 1(分):S2 2(秒)的时间数据,然后将结果存放到D(时):D 1(分):D 2(秒)中。

在TSUB指令中,当驱动条件成立时,将S1(时):S 1(分):S 2(秒)的时间数据减去S2(时):S2 1(分):S2 2(秒)的时间数据,然后将结果存放到D(时):D 1(分):D 2(秒)中。

TADD指令和TSUB指令也比较简单,它们的形式和ADD指令、SUB指令非常相似,区别在于TADD指令、TSUB指令是时间的加减,ADD指令、SUB指令是普通数据的加减。

以上的4个指令,较为常用的是时间的比较指令TCMP和TZCP,例如控制指示灯的亮灭,要求指示灯在23:00到第二天的6:00之间关闭,其程序梯形图如下图26-10所示。

三菱plcfx2n编写计时指令(三菱FXPLC基础指令时钟处理指令)(14)

图26-10

总而言之,包括上篇文章在内的时钟指令虽然形式简单,但其占用或涉及的软元件比较多,所以我们在学习的过程中要多次练习,才能熟练运用。

以上,这次的学习分享就到这里。

注:本文章内容都是基于三菱FX PLC 所写

选自《三菱FX系列PLC功能指令详解》第十二章第110~112课时

(来源:技成培训网,作者:杨思慧,未经授权不得转载,违者必究)

如何用尽可能短的时间,让你找到技能关键点和提升方向,同时也能建立自己的学习规划体系。

小白入门必懂PLC软件 干货包 重磅加餐,PLC入门学习全流程、电工基础大全、电工进阶PLC、PLC例程、西门子工程师地图……

这些曾经让你头秃、加班熬夜的技术干货,我们都为你准备好了!

三菱plcfx2n编写计时指令(三菱FXPLC基础指令时钟处理指令)(15)

软件汇总

三菱plcfx2n编写计时指令(三菱FXPLC基础指令时钟处理指令)(16)

学习步骤学习步骤

或许过去的你一直都在被质疑,而现在这么好的机会能证明自己为什么不努力一把呢?

三菱plcfx2n编写计时指令(三菱FXPLC基础指令时钟处理指令)(17)

,