介绍一下西门子S7300PLC的S5定时器的S5TIME数据格式
在西门子S7300PLC中,使用定时器时,需要给定时器设定时间,那么就用到一种特殊的数据类型,经常接触200的人,对于这个数据类型肯定很陌生,它就是S5TIME时间格式,长度是16位的,下面就来说一下,这种数据类型在存储器中存放的格式是怎么样的。
S5TIME是16位的,它在存储器中,一共有分成4组,每组4位,每组能表示的十进制数的最大值是9,因为我们设定时间时是用十进制设定的。

如上图,其中最左边的四位的前两位,00代表时间的分辨率是10MS,01代表100MS,10代表1S,11代表10S。然后接下来的三组二进制数,分别表示设定的时间,用BCD码来表示,然后三组这样的四个二进制用BCD码表示十进制,最大可以表示的数就是999,那么它能设定的最大时间就是9990秒。
打个比方吧,我设定时间是10秒,只要在程序里面输S5t#5s就可以了,但是它存放到内存里面就变成这样了:0010 0000 0000 0101 。左边10代表1S的分辨率,最右边的0101,是设定时间的个位数,也就是5,那么它就表示:5*1S=5秒,设定时间就是5S。我们来用仿真器验证一下:


我们可以看到,MW1设定时间为5S,是用S5TIME格式显示的,然后我们把它切换到二进制,这个数就变成了0010 0000 0000 0101了。
然后我们就可以算出它所能表示的时间最大值就是:999*10S=9990秒。再用仿真验证一下:


我设定时间为S5T#9990S,它自动换算成S5T#2H46M30S,2小时46分3秒。然后我再往上加一秒钟来设定,S5T#9991S就报错。说明设定时间最大值就是:9990秒。