电子说
解决两个问题:一是西门子PLC S7-200 SMART主模块内的时钟如何在程序中读写,二是BCD码及转换。 先说BCD码,简单来说BCD码是用用4位二进制数来表示1位十进制数中的0~9这10个数码。举个例子,一位十进制数“9”的二进制BCD码是“1001”,两位十进制数“99"的BCD二进制码是“10011001”。这个二进制数如果直接转化为十进制是“153”,但是如果是BCD码,就表示“99”。和四位自然二进制码不同的是,它只选用了四位二进制码中前10组代码,即用0000~1001分别代表它所对应的十进制数,余下的六组代码不用。 然后再说怎么读写PLC的时钟,有两条指令。下图给出了这两条指令
READ_RTC指令会把PLC的内部时钟读出来,以BCD码的形式,存放在T参数指定存储单元开始的8个字节内,图上是从VB100开始的8个存储单元内,具体内容如下图。 SET_RTC指令会把从T参数指定的存储单元开始的8个字节内的值写入到PLC的内部时钟,具体内容如下图。我们要把要时钟值,以BCD码形式,先存储到这8个字节内,上图指令中是从VB1000开始的8个字节。
比如今天是2020年02月19日星期三,读取出来时钟后,如果T=VB100,那么VB100开始的前三个字节的值用十进制表示依次是:32,02,25, (分别是20,02,19的BCD码)。表示星期的VB107内的值用十进制表示为04,也就是星期三。
审核编辑:郭婷
全部0条评论
快来发表一下你的评论吧 !