系统功能 SFC1 用于读取 CPU 的系统时钟。系统时钟存储在数据类型为DATE_AND_TIME的变量里。通过指针访问系统时钟的单个组成元素。

数据类型DATE_AND_TIME所包含的关于年、月、日、时等信息是以 BCD 码的格式存储在 8 个字节里。该数据类型显示的范围是:

DT#1990-1-1-0:0:0.0 到 DT#2089-12-31-23:59:59.999

下表给出了实例表示 2014 年1月 2 日,星期四,3点 5 分 11.854 秒对应数据类型DATE_AND_TIME的每个字节所包含的内容。

DATE_AND_TIME为64位复杂数据类型

绝对地址 内容 例子
字节0 B#16#14
字节1 B#16#01
字节2 B#16#02
字节3 小时 B#16#03
字节4 分钟 B#16#05
字节5 B#16#11

字节6+字节7高4位*

(字6)

毫秒 W#16#8545
字节7 (低四位*) 星期:
1:星期日
2:星期一
3:星期二
4:星期三
5:星期四
6:星期五
7:星期六
B#16#45

*毫秒最大值999的BCD码需要占用12位。因此,毫秒值占用字节6以及字节7的高4位。字节7的剩下低4位用于表示星期。

用SFC1 (READ_CLK)读取系统时钟的说明:

案例:

打开SCL软件在静态变量里定义 一个DATE_AND_TIME数据类型的变量

利用‘AT’继承将64位时间变量拆分出来

AT指令可以使用户能够以不同的数据类型来访问一个已经声明的变量。此指令类似于高级编程语言中的“继承”概念。此指令有如下特点:

特点一:定义仅在块内有效,在接口参数中不出现。

特点二:在块中可以使用其他数据类型的视图。

特点三:它只是让另外一些变量继承了某个变量的特性,仅仅数据类型是新的,其他特性相同。

如果使用全部的时间,例如进行WINCC面板显示可以直接使用''DAT''变量。

如果使用单个时间就可以使用拆分后的时间

这里有个小技巧:

因为我们上面说到毫秒值占用字节6以及字节7的高4位。星期占用字节7的剩下低4位

那如何将一个16位字拆分成12位和4位呢?

这里我们可以利用“与”的方式

MB52 := WORD_TO_BYTE(TMP_DAT.Q7 AND 16#FFF0)

“与”16#FFF0不就是“与”2#1111111111110000正好提取出12位出来

完整代码:

语言4位bcd码怎么加加_S7300400如何使用SCL语言调用SFC1(READ_CLK)读取日期和时间?...相关推荐

  1. C语言4位BCD码加法器,bcd码加法器

    BCD码(Binary-Coded Decimal‎)亦称二进码十进数或二-十进制代码.用4位二进制数来表示1位十进制数中的0~9这10个数码.是一种二进制的数字编码形式,用二进制编码的十进制代码.B ...

  2. 单片机(keil c51):BCD码转化为二进制(以4位BCD码举例,依此类推)

    BCD码转化为二进制 原理: 一个BCD码表示0~9,所以一个BCD码的取值范围为0000~1001. 在机器里所有的数都是按照二进制存入的,所以只需将BCD码转换为十进制即可. 4位BCD码可以表示 ...

  3. 8086汇编4位bcd码_[走近FPGA]之二进制转BCD码

    注:本文由不愿透露姓名的 @Bulingxx 撰写.以下为正文. 在上一篇文章中介绍了数码管如何在FPGA开发板上实现动态显示,其文章链接如下: 人生状态机:[走近FPGA]之数码管动态显示​zhua ...

  4. 8086汇编4位bcd码_51单片机用汇编语言实现BCD码转换

    一.BCD码简介: BCD码(Binary-Coded Decimal‎)亦称二进码十进数或二-十进制代码.用4位二进制数来表示1位十进制数中的0~9这10个数码.是一种二进制的数字编码形式,用二进制 ...

  5. scl语言用plc脉冲做定时器_西门子PLC中使用SCL语言编程的技巧

    中使用 SCL 语言编程的技巧 前言:两年半前我就在工控网上发表了有关 SCL 编程的知识 << 在 S7300400 型 PLC 中使用高级语言编程 >>, 但发表完 后,即 ...

  6. 8086汇编4位bcd码_逆向工程——汇编基础[一]

    什么是汇编 汇编语言是一种最接近计算机核心的编码语言.不同于任何高级语言,汇编语言几乎可以完全和机器语言一一对应. 汇编语言就是机器语言的一种可以被人读懂的形式,只不过它更容易记忆. 学习汇编语言,你 ...

  7. 8086汇编4位bcd码_238期中4头3尾,排列五第19239期爱我彩规

    爱我彩规 专业研究(七星彩.排列五)  前四位的铁码与定位规,有幸开通爱我彩规公众号,努力为大家提供稳定的号码参考.作者微信号awc1125. 逢星期二和星期天不在彩码课堂公众号转发,因星期二和星期天 ...

  8. c语言float转bcd码

    //基于查表实现BCD与Ascii之间的转换 static uint8_t bcd2ascii[16] = { '0', '1', '2', '3', '4', '5', '6', '7', '8', ...

  9. 8086汇编4位bcd码_汇编语言--在屏幕上显示名字

    在屏幕上显示名字 方法一 stack segment a db 10 dup(?) stack endsdata segment string db 'lihaifeng',0dh,0ah, '$' ...

最新文章

  1. ava RMI 框架(远程方法调用)
  2. iOS学习笔记---oc语言第八天
  3. Android Studio设置
  4. 分布式、集群的概念、区别
  5. 循环首次适应算法_遗传算法 | 了解底层, 摆脱工具箱
  6. [转]HTTP 错误 403.1 - 禁止访问:执行访问被拒绝。
  7. 在TFS2013上删除项目
  8. java怎么求偏态函数_树的不同形态
  9. int型整数的数值范围
  10. Andorid开发中好用的库
  11. c语言程序电压采样,单片机电压采集装置课程设计(AD转换及编程实现).doc
  12. serverless入门介绍
  13. Android 图片压缩方案
  14. Power bi 1.5连接Oracle
  15. 探索人机未来:人机融合智能
  16. K_A04_001 基于单片机驱动LCD1602字符滚动显示(8位并行+IIC通信)
  17. 服务器修复oxc0000098,Win10引导文件BCD文件误删或损坏启动错误0xc0000098的解决方法...
  18. word文档中的勾怎样打
  19. Android开发之NFC介绍及应用
  20. 分销小程序开发教你如何分清分销商和代理商

热门文章

  1. python3 django连接mysql 数据库
  2. 【代码笔记】iOS-清除图片缓存UIActionSheet
  3. AOJ 6.Hero In Maze
  4. MySQL索引背后的数据结构及算法原理(转)
  5. windows phone7 学习笔记14——地理位置服务与反应性扩展框架
  6. R12 应付款模块(AP):预付款(prepayment)的标准处理流程
  7. 聊透分布式系统一致性
  8. C语言不调用库函数画直线
  9. 前凸后翘的步进电机调速算法~
  10. 分享一个非常 nice 的工具