我写s7-200的实时时钟,老是报错,不知什么原因?

2020-12-02
  • 添加 Clock_Integer 指令库
  • Clock_Integer 指令库编程应用 - 读取系统时钟
  • Clock_Integer 指令库编程应用 - 设置系统时钟
  • Clock_Integer 指令库应用例程
  • 常问问题:
目录

问题详细描述:

我想写入s7200;的时钟,set_rtc但是报错,把vb500重新赋值也不行,其他无调用vb500的地方,这个为啥呢??

我可以用read_rtc正确读出s7200的时间,是正确的。我把sm0.0改为m10.0一次触发,但是也是不行,触发时也是红色的,也不写s7200数据

佳答案:

系统时钟是以BCD码的格式表示的,你的指令红色说明数据格式不正确,建议使用时钟库指令,直接是十进制表示的:

Clock_Integer 指令库及其使用

使用 S7-200 的 READ_RTC(读取实时时钟)和 SET_RTC(设置实时时钟)指令时, 读取和设置的数据格式都是 BCD 码的。如果觉得不便计算、处理,可使用 Clock Integer 指令库。

Clock_Integer 指令库用于将 BCD 码格式的 S7-200 日期、时间转换为十进制整数格式,以及将十进制整数格式的日期、时间值设定为 S7-200 时钟。

注意:此指令库/程序的作者和拥有者对于该软件的功能性和兼容性不负任何责任。使用该软件的风险完全由用户自行承担。由于它是免费的,所以不提供任何担保,错误纠正和热线支持,用户不必为此联系西门子技术支持与服务部门。

要使用 Clock_Integer 指令库,须遵循下列步骤:

  1. 取得 Clock_Integer 指令库文件,并添加到编程软件 STEP 7-Micro/WIN 中;
  2. 按照要求编写用户程序调用 Clock_Integer 指令库。

添加 Clock_Integer 指令库

点击上面的链接下载 Clock_Integer 指令库到本地计算机硬盘,建议保存在 Micro/WIN 安装目录的 Lib 文件夹中。以下是一个完整路径的例子:

C:\Program Files\Siemens\STEP 7-Micro/WIN V4.0\Lib

然后将指令库库手动添加到 Micro/WIN 软件中。

成功添加指令库后,用户可以在STEP7 Micro/win的指令树中找到‘Clock_Integer (v1.0)'

我写s7-200的实时时钟,老是报错,不知什么原因?图片1

图1.Clock_Integer 库

Clock_Integer 指令库编程应用 - 读取系统时钟

1、调用 READ_RTC_I,读取 PLC 时钟 ,并将其转换为十进制整数格式

我写s7-200的实时时钟,老是报错,不知什么原因?图片2

图 2. READ_RTC_I

表 1. READ_RTC_I参数

参数 数据类型 注释
EN BOOL 信号为‘1’时激活库指令
Address DWORD 起始偏移地址,转换为十进制格式的 PLC 时钟被保存在以此地址为起始地址的 8 个字节中

2、分配库存储区:

调用指令 READ_RTC_I 或 SET_RTC_I 后,必须定义 8 位(一个字节)的 V 存储区为库存储区。

我写s7-200的实时时钟,老是报错,不知什么原因?图片3

参考:分配库指令数据区

表2. 8 字节时间缓冲区的格式

Address
Address+1
Address+2
Address+3 小时
Address+4 分钟
Address+5
Address+6 保留
Address+7 星期(1)

(1) 1 = 星期天;7 = 星期日;0 = 禁止星期

如图 2 所示,当 V50.0 为 ‘1’ 时,转换后的实时时钟被存储在 VB10 至 VB17 中。

在状态表中用户可以看到:

我写s7-200的实时时钟,老是报错,不知什么原因?图片4

图3.状态表

可以看出,此时的 PLC 时钟为: 2006 年 4 月 6 日,23 时 48 分 1 秒,星期四。

注意:此指令库读取的整数格式时钟数据以连续字节的形式保存,而后续的整数运算需要一个字(两个字节)长度的数据。编程时要注意这一点。

;

Clock_Integer 指令库编程应用 - 设置系统时钟

1、调用 SET_RTC_I,将以十进制整数格式存储的日期时间设定为 PLC 时钟

我写s7-200的实时时钟,老是报错,不知什么原因?图片5

图4.SET_RTC_I

参数 数据类型 注释
EN BOOL 信号为‘1’时激活库指令
Address DWORD 起始偏移地址,以此地址为起始地址的 8 个字节中,应已经存储着用户时间数据

表 3. SET_RTC_I 参数

8 字节时间缓冲区的格式同表 2。

2、分配库存储区:

调用指令 READ_RTC_I 或 SET_RTC_I 后,必须定义 8 位(一个字节)的 V 存储区为库存储区。

我写s7-200的实时时钟,老是报错,不知什么原因?图片6

参考:分配库指令数据区

Clock_Integer 指令库应用例程

Clock_Integer 指令库例子程序

注意:该例程必须使用 Micro/WIN V4.0 SP3 或以上版本软件打开。

注意:此指令库/程序的作者和拥有者对于该软件的功能性和兼容性不负任何责任。使用该软件的风险完全由用户自行承担。由于它是免费的,所以不提供任何担保,错误纠正和热线支持,用户不必为此联系西门子技术支持与服务部门。

注意:

  • CPU221、CPU222 没有内置的实时时钟,需要外插“时钟/电池卡”才能获得此功能。
  • 只有 STEP7 Micro/Win V3.2 SP4 和 V4.0 版本才支持使用该指令库。
  • 在使用 ‘SET_RTC_I’ 设定 PLC 时钟时,被设定的时间必须有实际意义,否则设定操作不能成功完成。例如: 不能将月份设为 13,或者将分钟设为 61 等。
  • Address 端必须输入地址指针,如:;VB10,;VB20;或者为双字地址,如:VD100,MD10,AC0等,在该地址中存有地址。

常问问题:

Clock_Integer 指令库和 Micro/WIN 指令树中的读、写实时时钟指令有什么不同?

Clock_Integer 指令库读出或写入的 PLC 时钟是以十进制整数格式存储;而读、写实时时钟指令读出或写入的 PLC 时钟为 BCD 码格式。

上一篇

下一篇

首页    西门子PLC    常见问题    我写s7-200的实时时钟,老是报错,不知什么原因?

坤玛机电,工业自动化产品一站式采购

搜索“坤玛易采”小程序

 

 

成为坤玛产品经纪人,促成交易赚佣金!

 

 

以坤玛机电为平台,利用自身的资源与优势,销售机电产品赚取佣金。

 

合作咨询电话:15901651735

 

立即咨询

坤玛机电  PLC控制柜生产厂家

 

专业设计制作电气控制柜

 

低压成套配电设备及自动化系统集成

  • 回到顶部
  • 88888888
  • QQ客服
  • 扫码添加微信

关于新广告法声明:

新广告法规定所有页面不得出现绝对化用词和功能性用语。本公司支持新广告法的实施,特此声明:本网站所有页面上功能性用词和绝对化用词全部失效不作为任何赔付理由,以往产品介绍页不明显区域我们会逐步排查完善修改,不接受并且不妥协以任何形式的打假名义进行的网络欺诈。

也请职业打假人高抬贵手。产品实际特性以说明书为准,请知悉!