恭喜,你发布的帖子
发布于 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、中断程序是个独立王国,它不属于子程序概念,它和主程序有的一比,它可以调用子程序。除了控制中断的指令有限地在中断程序里使用,其它普通指令都可以出现在中断程序中。除非有声明,指令在中断里的行为不受限制。
请填写推广理由:
分享
只看
楼主