回复:1200 中的 FirstScan 是如何定义的?

已锁定

xiatianyun

  • 帖子

    861
  • 精华

    10
  • 被关注

    26

论坛等级:奇侠

注册时间:2020-05-09

白金 白金 如何晋级?

发布于 2024-05-01 09:19:05

18楼

展开查看
以下是引用汐止在2024-04-29 11:11:51的发言 >4楼

大佬,西门子 S7-300 里面没有系统时钟,也就是没有官方的 FirstScan 可以直接用。


我看有人在 OB100 里面这样定义:


IF NOT "FirstScan" THEN

       "FirstScan" := TRUE;

END_IF;


然后在 OB1 中的最后一段,将 "FirstScan" 复位掉。


----------------------------------------------------



这样做与文档中的“在 启动 OB 完成后 第一个扫描周期该位置位为 1,之后的扫描周期复位为 0”不一致。这样写有没有潜在的“风险”?


想知道以前的老 300 PLC,大家是怎么写 FirstScan 的?怎么写会符合规范呢?





以下是引用振~在2024-04-29 10:42:01的发言 >3楼:首次循环:在启动 O...

引用3楼详细内容:

首次循环:在启动 OB 完成后第一个扫描周期该位置位为 1,之后的扫描周期复位为 0;



这个做法和我的用法一摸一样。

主要用于模块初始化,不用采用系统的firstScan,因为系统的firstScan只在上电时有用,而很多时候我们是在运行中添加FB的,所以就不会有系统firstScan可用。

一般我这样写:

btFirstScanRP := Not bFirstScan;

bFirstScan := True;

这里btFirstScanRP是个temp,而bFirstScan是个static,初值为false.


评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-1200系列

共有15772条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

快扫描右侧二维码晒一晒吧!

再发帖或跟帖交流2条,就能晋升VIP啦!开启更多专属权限!

  • 分享

  • 只看
    楼主

top
X 图片
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。