S7-300
实验三 参数类型应用3
1) 目的
掌握基本的程序编写能力
2)实验内容
①建立DB15,要求内部包含有年,月,日,时,分,秒,毫秒,星期等元素,元素类型自行考虑。
②建立FC20,要求具备如下功能:
③读出CPU系统时钟的当前日期和时长。
④将读到的DATE_AND_TIME分解成年,月,日,时,分,秒,毫秒,星期并赋给DB15对应元素。
注意1:毫秒需要将高、低字节组合成一个字输出;
注意2:需要编写逻辑,根据DATE_AND_TIME指示星期的信息对应输出相应的STRING显示英文字符串输出给DB15;
注意3: DATE_AND_TIME以BCD格式输出信息,需要在赋给DB15之前转换其数据类型。
3)实验流程
①建立DB15
注意毫秒为WORD,星期为字符串(容量大小为10个字符),如下图所示。
图1-DB15
②创建FC20
读取CPU时长
调用SFC1,将系统时长读取到DB15的日期时长变量DAT中,如下图所示。
图2-调用SFC1
先转移前六个字节的内容,使用BCD_I将该字节由BCD码转为INT型输出到DB15中,如下图所示。
图3-转移前六个字节
运用左移右移来读取毫秒信息,因为左移右移指令对于挪出部分的数据就会丢掉,然后挪掉后的空缺由0补上,则编程图如下:
图4-左移右移来读取毫秒信息
星期信息的获取如下图所示:
图5-星期信息的获取
图6-星期信息的获取
保存编译下载到PLCSIM中,在变量表VAT_1中监视程序执行结果,在PLC->Set Time of Day中将PG/PC时长应用到CPU系统时长中,将数据类型选择为DEC可监视结果如下图所示。
图7-监视程序执行结果
4)总结
1. DATE_AND_TIME类型数据包含8个字节,每个字节类型是BCD码。在DB中创建后,可年,月,日,时,分,秒,毫秒,星期等元素按照绝对地址拆分出来,并可以转化为INT数据。
2. 对于毫秒的高两位和第一位取出后星期信息的取出可以使用左移右移的方法来的到数据,亦可以将DATE_AND_TIME型变量的最后一个字节与16#F0相与可取出高4位做毫秒低位;与16#F相与取出低4位,该4位表示星期的信息,然后再分别作处理。
敬请期待下一篇参数类型篇04
PS:友情提醒,所有文章都是一个系列,是连贯的,顺着看效果更好~
作者简介
谭俊豪:重庆大学机械工程学院学士,西门子中国公司培训生
本文为原创文章,于头条首发,欢迎转载,请注明出处和作者!