对于很多数据点典型程序块,可使用 TimeStamp 参数指示应传送带时间戳的对象数据。
但在接收数据点典型程序块时,没有输出参数可用来输出所接收到的时间戳。时间戳仅保存在背景数据块中,调用各个接收典型程序块时已*该背景数据块。为了进一步处理时间戳,必须由用户程序从数据块中读出数据。
时间戳保存在两个数据双字中,这两个数据双字在所有对象数据块中的名称都相同:
双字的名称 | 内容 |
---|---|
RecTimeStamp_1 | 年、月、日和小时 |
RecTimeStamp_2 | 分、秒、毫秒和时间状态 |
除了时间状态使用半个字节外,日期和时间均以 BCD 格式编码。
列表: 时间戳的结构分配
双字的名称 | 字节编号 | 内容 | |
---|---|---|---|
High nibble | Low nibble | ||
RecTimeStamp_1 | 0 | 年 * 10 | 年 * 1 |
1 | 月 * 10 | 月 * 1 | |
2 | 日 * 10 | 日 * 1 | |
3 | 时 * 10 | 时 * 1 | |
RecTimeStamp_2 | 0 | 分 * 10 | 分 * 1 |
1 | 秒 * 10 | 秒 * 1 | |
2 | 毫秒 * 100 | 毫秒 * 10 | |
3 | 毫秒 * 1 | 时间状态 |
列表: 半个字节的“时间状态”的位分配(RecTimeStamp_2 字节 3 的低半字节)
位号 | 值 | 含义 |
---|---|---|
0 | 0 | 时间无效 |
1 | 时间有效 | |
1 | 0 | 标准时间 |
1 | 夏令时 | |
2 |
| 未使用 |
3 |
| 未使用 |
时间双字占用不同的地址,具体视典型程序块而定。在背景数据块中或在功能块的声明标头中查找这两个双字的**地址。
对背景数据块采用符号名称更为方便。这样便可以使用符号地址读取信息。在这种情况下,*考虑实际的**地址。这些地址自动由 STEP 7 使用。以下示例清晰说明了此操作过程。
示例
背景数据块的符号名称: ObjectDB27
用于读取日期和时间以及保存在以数据字节 100 开头的 DB20 中的 STEP 7 程序,采用 STL 编程时显示如下:
L "ObjectDB27".RecTimeStamp_1
T DB 20.DBD 100
L "ObjectDB27".RecTimeStamp_2
T DB 20.DBD 104
产品推荐