回复:沿指令那些事儿

yanxiao

版主

  • 帖子

    12318
  • 精华

    49
  • 被关注

    193

论坛等级:至圣

注册时间:2003-06-06

钻石 钻石 如何晋级?

发布于 2018-01-22 19:14:12

2楼

1、现在高级编程语言几乎都在面向对象。面向对象是组织代码的一种规范。


2、对象,最主要的特征是把对象的数据(属性)和代码(方法)封装在一起,使用对象必须严格遵守规范。


3、面向事务的编程语言,虽然没有强化对象的概念,但是也有类似对象的结构。


4、把200smart的沿指令,套用对象来描述一下。当然,这个“假对象”没有违反手册关于沿指令的定义。


5、首先,200smart有一个 P 类(上升沿指令),这个类至少有两个私有属性,一个是首次扫描的标记位Fir,另一个是前一次输入数据的记录Pre;

这个类有一个构造函数INIT和一个方法EU,这个方法根据输入的数据IN与前次存贮的数据Pre进行计算,返回一个值Ret。


6、程序中每放置一个 P 指令,相当于 生成一个 P 类的实例。不同位置上的 P,是不同的 实例。


7、当PLC从Stop 转 RUN 后,系统自动调用各 P 类实例的构造函数INIT,将首扫描的标记位Fir这个私有属性置位。


8、当PLC系统程序扫描到(执行) 一个 P 实例,调用该实例的方法EU:如果首次扫描标记Fir置位,则存贮当前输入至私有属性Pre、清除首次扫描标记Fir后直接返回Ret=0值;

如果首次标记未置位,则计算返回值:Ret=(!Pre) and IN,存贮当前输入IN至Pre,返回Ret。


9、不同的对象由不同的对象实例处理。张三的数据由张三的对象实例处理,李四的数据由李四的对象实例处理。


10、在子程序中,有一个 P 的实例,它只能处理来自一个对象的数据,比如来自I0.0。

如果这个 P 实例既处理 I0.0,也处理 I0.1,这不是一般写的程序,可以认为是黑客程序,他想实现的功能只有作者清楚。


11、如果你的子程序要传不同的 对象进去,I0.0、I0.1。。。等有N个,通常要在子程序内生成 N 个 P 的实例才行,每个 Ix.x 的对象数据由一个特定的 P 实例处理。

你可能觉得这样好麻烦。但可以解决问题。程序一旦写成,使用是方便的。


12、中断程序是个独立王国,它不属于子程序概念,它和主程序有的一比,它可以调用子程序。除了控制中断的指令有限地在中断程序里使用,其它普通指令都可以出现在中断程序中。除非有声明,指令在中断里的行为不受限制。


评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-200 SMART

共有9368条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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