[三菱] 我的三菱FX PLC学习之时钟处理指令(下)

[复制链接]
查看374 | 回复0 | 2024-5-28 13:47:43 | 显示全部楼层 |阅读模式


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

上篇文章所分享的指令是时钟数据读/写指令,即TRD和TWR。这次我们继续解读时钟的其他指令,分别是时钟数据比较指令TCMP、时钟数据区间比较指令TZCP、时钟数据加法指令TADD、时钟数据减法指令TSUB。


观察以上4个指令,大家是否觉得似曾相识?回顾我之前分享的比较指令和数值运算指令,前提是你们看过的话,就会发现,它们是多么的相似!

既然如此相似,那么它们的区别在哪呢?我们接着往下看。
01TCMP时钟数据比较指令
TCMP指令的编程手册截图如下图26-1所示。从图可知,TCMP指令只适用于16位,有连续执行型和脉冲执行型两种。

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

图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中的一个。

图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位。


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

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


知道了TCMP指令后,我们继续看TZCP指令。
02TZCP时钟数据区间比较指令
TZCP指令的编程手册截图如下图26-3所示。从图可知,TZCP指令也只适用于16位,有连续执行型和脉冲执行型两种。

图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在驱动条件断开后仍能对当前状态保持不变。

图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指令,在此不再赘述。
03TADD时钟数据加法指令和TSUB时钟减法指令
TADD指令和TSUB指令的编程手册截图如下图26-6所示,两条指令的执行形式、适用软元件都一样,分别用于时钟数据的相加减。时钟的相加减,进制显然不是简单的十进制或二进制,小白都知道,“时”的进制为24,“分”和“秒”的进制为60。

图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。

图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。

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


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

图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所示。

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


以上,这次的学习分享就到这里。
注:本文章内容都是基于三菱FX PLC 所写
选自《三菱FX系列PLC功能指令详解》第十二章第110~112课时



免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册哦

x
您需要登录后才可以回帖 登录 | 注册哦

本版积分规则