说明:
本条目包含了读取和比较日期、时间和计数器的技巧和窍门。涉及到以下主题:n
- 读取和转换定时器的剩余时间
- 比较数据类型为“DATE”的月份
- 将 S5TIME 类型数据相加
- 来自计数器程序的不正确的值
下表提供了上面所列问题的信息和补救措施。
序号 |
读取和比较日期、时间和计数器的技巧和窍门 |
1 | 读取和转换定时器的剩余时间 下面的STL程序使用MD8 "T1_IEC_time" 来确定关延时的剩余时间。 n
- 定时器的 BCD 输出管脚的值被传送到MW6 "T1_BCD"。n
- 此值的数据类型为 WORD 并且必须转换为 S5TIME 数据类型。n
- 因为BCD值仍然包含定时器的时期的倍数,MW6 "T1_BCD"的值被复制到 MW12 "BCD_S5TIME"。n
- 于是使用"Standard Library/IEC Function Blocks"库中的FC33 "S5TI_TIME" 来将 MW12 "BCD_S5TIME"转换为"TIME" 类型。n
- 结果保存在MD8 "T1_IEC_time"中。
复制 "STEP7_V5_RestTime.zip" 文件到一个单独的文件夹,双击文件将项目中文件和文件夹释放。这样就可以用STEP 7 V5.4 来打开和处理项目了。n
STEP7_V5_RestTime.zip ( 34 KB ) |
2 | 比较数据类型为“DATA”的月份 “DATA”数据类型以一个无符号整数表示的天数来显示,起始天为1990年1月1日。这就是为什么必须使用TIME_OF_DAY 数据类型将数据类型转换为DATE_AND_TIME 。DATE_AND_TIME 数据类型以BCD形式保存。n
图01n
现在可以将月份信息以BCD形式与另一值作比较了。 |
3 | 将 S5TIME类型数据相加 S5TIME 数据类型以BCD形式保存数据。不能将两值简单相加。如果将时间转换为TIME数据类型,数据将以十进制数形式保存。转换为十进制数后就可使用使用SIMATIC S7的算术运算来处理这个数据类型了。
- 可以使用标准库下"IEC Function Blocks"中的FC 33 (S5TI_TIM) 来将S5TIME 数据类型转换为TIME数据类型。
- 如果需要时间在程序中以S5TIME 数据类型表示,则可使用FC 40 (TIM_S5TI) 来将日期转换为S5TIME 数据类型。本块也可在标准库下"IEC Function Blocks"中找到。
- 使用SIMATIC Manager的" Open a project/library"按钮来打开标准库。这里选择"Libraries"选项卡,并选择"Standard Library"。
图02 给出了S5TIME和TIME 数据类型的限制。关于其它数据类型的更多信息参见STEP 7在线帮助下的 "LAD/STL/FBD - Edit Blocks"部分。
图02
复制"STEP7_V5_S5time_Addition.zip" 文件到一个单独的文件夹,双击文件将项目中文件和文件夹释放。这样就可以用STEP 7 V5.4 来打开和处理项目了。
STEP7_V5_S5time_Addition.zip ( 36 KB ) |
4 | 来自计数器程序的不正确的值 为了在两个计数器串联的情况下在计数器程序中获得正确的值,必须在每个计数器前设置一个上升沿。而且必须将结果值另外保存。
图03
|
创建环境
本FAQ中的图片和下载项均在STEP 7 V5.4 环境下创建。
原创文章,作者:ximenziask,如若转载,请注明出处:https://www.zhaoplc.com/plc332871.html