iOS 开发基础:迅速掌握 Objective C
Objective C 是 C 语言的超集,继承了 C 语言的语法、基本数据类型、控制流语句;同时加入了对象和动态的运行时:类和方法、动态类型和绑定、直到运行时才做责任推导。
Objective C 是 C 语言的超集,继承了 C 语言的语法、基本数据类型、控制流语句;同时加入了对象和动态的运行时:类和方法、动态类型和绑定、直到运行时才做责任推导。
IEC 61131-3 定义的文本语言包括IL语言和ST语言,SFC元素可以用于这些语言之间的连接。 首先列出文本语言中共同的程序结构元素:
TYPE...END_TYPE VAR...END_VAR
VAR_INPUT...END_VAR VAR_OUTPUT...END_VAR
VAR_IN_OUT...END_VAR VAR_EXTERNAL...END_VAR
VAR_TEMP...END_VAR VAR_ACCESS...END_VAR
VAR_GLOBAL...END_VAR VAR_CONFIG...END_VAR
FUNCTION ... END_FUNCTION FUNCTION_BLOCK...END_FUNCTION_BLOCK
PROGRAM...END_PROGRAM STEP...END_STEP
TRANSITION...END_TRANSITION ACTION...END_ACTION
顺序功能图 用于结构化描述PC程序组织单元的内部组织,它使用本标准定义的语言之一,用于执行 顺序控制 功能。
SFC将PC程序组织单元划分为一系列的 步 和 转换 ,它们之间用 有向连接 连起来。每个 步 与一组 动作 关联,每个 转换 与一个 转换条件 关联。
如果一个程序组织单元的任何部分被划分为SFC元素,那么整个程序组织单元都应进行划分。如果一个程序组织单元没有划分,那么整个程序组织单元可被视为单个 动作 。
SFC要求保存状态信息,故可以描述的程序组织单元只有 功能块 和 程序 。
配置 包含 资源 , 任务 (在 资源 中定义), 全局变量 , 访问路径 和实例初始化。下图为一个简单配置的图形示例:
功能块 和 程序 的纲要声明如下:
IEC 61131-3 定义的 程序组织单元 包括:功能、功能块、程序。这些程序组织单元不应是 递归 的,即对一个程序组织单元的调用不会再次引发对该类型程序组织单元的调用。
功能 :执行后产生一个结果数据元素,和任意数量的输出元素的程序组织单元。
功能结果可以是多值的,即数组或结构。功能不能包含状态信息,即每次同样参数的调用应得到同样的结果。已声明的功能可以在其他程序组织单元中调用。
功能使用示例-ST语言:
VAR X,Y,Z,RES1,RES2 : REAL; EN1,V : BOOL; END_VAR
RES1 := DIV(IN1 := COS(X), IN2 := SIN(Y), ENO => EN1);
RES2 := MUL (SIN(X), COS(Y));
Z: = ADD(EN := EN1, IN1 := RES1, IN2 := RES2, ENO => V);
PLC语言规约在IEC 61131-3中。本文详述了变量的表示法、变量初始化、变量声明以及使用。
单元素变量 定义为表示单个基本数据类型数据元素的变量。这部分定义了变量的 符号表示 和 直接表示 (数据元素与可编程控制器输入/输出/存储器结构的物理/逻辑地址的关联)。
单元素变量 的 直接表示 由一个%
,一个 地址前缀 ,一个 大小前缀 ,和一个或更多由.
分隔的无符号整数组成。
*
可用于地址前缀,表示 直接表示 还没有完全指定。变量地址应在 配置 的VAR_CONFIG...END_VAR
构造内完全指定,否则将产生 错误 。
位置前缀 | 含义 | 地址前缀 | 含义 |
---|---|---|---|
I | 输入 | X/None | 单个位 |
Q | 输出 | B | 字节 (8位) |
M | 存储器 | W | 字 (16位) |
* | 未指定 | D | 双字 (32位) |
L | 长字 (64位) |
示例
%QX75 or %Q75 (* 输出的75位 *)
%IW2.5.7.1 (* 在输入的物理/逻辑层级2.5.7.1的字 *)
一个可编程控制器通过分级寻址访问另一个控制器的数据应被视为 语言扩展 。最大级数是 实现相关 的。
IEC 61131-3 中规约了 PLC 语言字符的使用与数据直接量的语法,本文详述了这两部分。
文本/图形语言 字符集 定义在 ISO-646IRV中,同时有其他字符集的扩展,如 ISO 10646-1 定义的“拉丁-1 补充”。
标识符 是由字母、数字、下划线组成的字符串,并且由字母或下划线开始。
注释 是在程序中引入文本的语言构造,并且对程序的执行没有影响。在可编程控制器语言中,注释的分隔符为(*
和 *)
。
嵌套的注释将被当做 错误 。
编译指示 是在程序组织单元中引入文本的语言构造,并且可能会对程序执行前的准备产生影响。在可编程控制器语言中,编译指示的分隔符为{
和 }
。