数据块的重复生成

在S5的OB21,OB22中(两者的程序完全相同)用“G”语句生成DB24、DB34两个数据块(另有两个预先编制的DB124、DB134),随即调用FB24,FB24中的程序如下:
 L     KF +0
 T     FW240
 C     DB24
 L     DW255
 L     KF +0
 ><F
 JC =M001
 M002:
 C     DB124
 DO   FW240
 L     DW0
 C     DB24
 DO   FW240
 T     DW0
 C     DB134
 DO   FW240
 L     DW0
 C     DB34
 DO   FW240
 T     DW0

 L     FW240
 L     KF+1
 +F
 T     FW240
 L     KF+255
 <=F
 JC =M002
 L    KF+0
 T    FW240
 M001:***
 BE

 注:DB124.DW255 = KH 0001,(CPU为S5-115U 943B)
 在循环程序中只用到DB24、DB34,(DB124、DB134在循环程序中不使用)用来记录机器上的一个主转动齿轮的齿数,通过记录该齿轮的齿轮脉冲来控制其它机构的动作,我试操作
 了这台设备,在自动运行过程中断电(10秒以上)上电,再按下自动运行启动按钮,仍然可以没有错误的运行,我试验了3次以上都没有问题。
 我的问题是:
 (1)G 语句生成的数据块的内容是全0,还是有随机值在其中?
 (2)每次断电上电都会重新生成相同的数据块么?(并且把上次通电时的数据块覆盖?)
 (3)用 G 语句生成数据块并写入数值后,断电的情况下,其中的数值会丢失么?(我没注意看这个型号的CPU有没有电池)
 (4)(我曾问过的问题的回答是:如果你已经预先编制了数据块,那么这个G DBX语句就可以忽略了。问题ID: 46270)在这次的问题的情况下,上次通电是由语句生成的数据块相对于断电上电后再次遇到“G”语句时情况,是不是与括号内的情况相同呢?
 (5)如果情况是相同或类似的,那么是不是可以这样认为:在第一次由“G”指令生成数据块后,在以后的断电上电调用OB21、OB22时,再次遇到这个“G”指令时,会认为是
 要生成的数据块已经有了,而忽略“G”语句,只要不出现数据块丢失的情况,这个“G”
 会一直被忽略。
 如果情况是这样的,就可以理解为什么这台设备可以在断电上电的情况下也不丢失动作了,但这样讲是对的么?

 
 曾给西门子技术支持打过电话,好像说是每次都要生成数据块,并且是全0,如果是这样的
 话好像就无法解释不丢失动作的功能了,正确的理解到底是怎样的,请高手们能给个详细彻底的答案,多谢了!!

 

最佳答案

程序已经告诉你答案了呀,FB24就是将DB124 的内容复制到DB24, DB134的内容复制到DB34。
   1如果是用G生成的话,那么肯定是0.
   2断电上电如果没有DB24 DB34的话,肯定会生成的。
   3生成的DB块和其它预先编制的DB块是一样的,断电保持的。(应该有电池的。)
   4 如果已经有DB24 DB34那么下次断电上电,G指令就不执行了,但这里要注意的是,你程序中的FB24还是执行的,那么这是否意味着复制工作是否一定会执行呢?程序的关键点就在
 L     DW255
 L     KF +0
 ><F
 JC =M001
 如果DB24 DW255 >< 0,那么就不复制,如果等于0就复制,这样就保证了断电上电后,只要DB24 DB34存在 DW255的值不为0,数据就不会清空和覆盖。
   5 和你想法一样。
   我觉得是这样的,编程的人将一些出厂初始值分别放在DB134 DB124中,如果你换了一台新的PLC,那么一上电,系统就会自动建立DB24 DB34,然后用DB24 DB34工作就可以了。这样保护了出厂值不受干扰。运行中间要是断电重启后,由于DB24 DB34的数据是保持的,重启后还可以继续操作。但要是数据乱了,想恢复出厂值,那么删掉DB24 DB34,重新上电,那么初始值就回来了。

 你可以将DB24 DB34数据做个备份,然后删除DB24 DB34 ,重新上电,你看看数据值是否就是DB124 DB134的数据,而且无法继续断电前的操作,而是恢复到初始值,实验如果是这样的话,应该就说明问题了。你也可以自己再加一个指令 G DB44,用一个没有使用过的DB, 断电上电,看看DB44的内容是否为0,就可以证明你的想法了。
 

提问者对于答案的评价:
好我试试看,谢谢!!

原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc139257.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2017年6月1日 上午2:04
下一篇 2017年6月1日 上午2:04

相关推荐

  • SCL编译器有无条件编译的功能?

    SCL编译器有无通过给出的条件满足情况,来控制程序某部分是否编译的功能呢?就像我们在写c的时候可以通过:#if —-#else…#endif;#ifdef….…

    SIMATIC S5 2017年6月1日
  • 求s5 im308手册

    求s5 im308手册 最佳答案 手册没有找到。先参考以下资料吧 文档链接 :https://support.industry.siemens.com/cs/docume…

    2021年7月5日
  • s5 的 DO 是什么意思?

    s5 的 DO  是什么意思? 重点是用s7 的什么功能可以替代? 例如: :L KF&n…

    SIMATIC S5 2017年6月3日
  • 如何知道上位机设定的值对应plc是哪种定时器

    plc:S5,wincc设定值范围:0~999,线性标定:过程值(0~9990000),想要显示的范围(0~9990),wincc变量类型为:32位无符号数。问题是:我怎么知道上位…

    SIMATIC S5 2017年5月31日
  • 6ES5-460-4UA12与13区别

    S5模拟量输入模块6ES5-460-4UA12与6ES5-460-4UA13有什么不同?这个命名规则是什么?还有是我们纸机上现在就是用的是6ES5-460-4UA12模块,但现在只…

    SIMATIC S5 2017年6月1日
  • CP1430 TF 与SimaticNet

    请问SimaticNet2008能与CP1430 TF卡进行通讯吗Step7组态时是否就是使用ISO Transport这个连接选项? 最佳答案 S5以太网支持…

    SIMATIC S5 2017年6月1日
  • 请教高手怎样在S5里面把语句表转换成梯形图

    请教高手怎样在S5里面把语句表转换成梯形图(步骤请尽量详细一些,谢谢!) 最佳答案 打开相应的pb块后,按shift+f5 可以在stl csf la…

    SIMATIC S5 2017年6月3日
  • s5-115F编程器

    我的PG750-486编程器坏了,有没有替代品? 如果更换硬盘可不可以,操作系统是什么,S5软件版本是什么?谢谢  最佳答案 这个取决于你的用途,如果要烧录S5…

    SIMATIC S5 2017年6月3日
  • 523-3UA11与西门子TD-17的通讯

    我公司在用的6ES5 523-3UA11通讯卡与西门子TD-17通讯中断,TD-17上显示信息为 $40 PLC not pres…

    SIMATIC S5 2017年6月1日
  • S5 OB块手册

    实在是找不到S5各个OB块的手册了,下载的手册中只解释FB的···希望各位达人帮帮忙,谢谢 问题补充:S5_135U的cpu922 最佳答案 http://www.ad.sieme…

    SIMATIC S5 2017年6月1日