2 参数部分
2.2 命令索引
2.2.11 CREAD
2.2.11.1 摘要信息
从通道中读取数据。
应用的例子: 在KRC1和外围数据(PC,智能传感器...) 数据交换(读语句)。
“CREAD”语句用于从打开的通道中读取数据。在这有两个区别::
主动读入
程序请求通过通道进行输入。通道驱动器提出输入请求并将接受到的数据作为 结果返回到CREAD语句 。
被动读入
预先确定的变量(INT$DATA_SER1orINT$DATA_SER2),未被请求的数据到达 后通过增加通道驱动器,每个通道都是这样的。当执行热启动或当打开/关闭通 道时变量初始化为0。在系统等待读入请求的反馈信号方面也是有差别的:绝对 的或有条件的。绝对的意思是系统等待直到通道给出请求的数据。在有条件的 情况下,系统检查数据是否有效。
2.2.11.2 语句
自变量 类型 解释
Handle INT
长沙工控帮教育科技有限公司
由“COPEN”转移变量。注意:变量“$CMD”将被拒绝43 量的列举类型第一个元素。
“CMD_STAT”能有与“CREAD”有关的下列值:
CMD_OK 命令顺利的执行; Mode MODUS_T “MODUS_T”是列举类型,它有与下列“CREAD”有
关的值:
ABS 激活读入通道。函数等待到通道产生一个可用的 数据块或等待到“Timeout”失败。
COND 未被请求的通道读入。
SEQ 从以前被请求使用“ABS”或“COND”或作为 结果返回“CWRITE”的字节补偿读入完成了的数据块
长沙工控帮教育科技有限公司
44 Timeout REAL 参数“TIMOUT”可被用于指定时间,在等待数据块失败之后。
Timeout的值0.0允许无止境的等待。.
一个值大于60或是为负值,则数值是无效的。与系统有关的错误在等
“SER_1”和“SER_2”。
INT $DATA_SER1 或 INT $DATA_SER2,
在未被请求的数据到达后,这些数据通过通道驱动增加。当系统启动或通道打开或关闭 认信息“INVALIDHANDLE”被显示。
长沙工控帮教育科技有限公司
45 其它方式的规定或非初始化的变量导致一个被变量“STATUS”发现错误 。如果读“ABS”“COND”
成功,那么数据块的数据是先前被承认的,就像他们完全的读出。
文本是按照格式规定的程序段返回的。值决定被分配的适当的变量,系统检查值之否在任何区 域有效。“变量FOMAT”转换支持由“Kernighan/Ritchie”指定的格式规定(C语言1978),O,P,
N,U和【list】出外。
字符长度规范“H”和“L”不能使用。
只有9个格式参数可用于指定“CREAD”语句。如果几个变量是格式化可用到的,则必须在“#SEQ”
模式下读入。
系统不能区别大小写字符。在发生一个错误后读入失败(不符合格式或无效的值)。
转换字符“R”,当读入任何一个字节指定的字符长度次序 (与写入类似,例如“%2.5r”)或这所有 字节在结束信息之前,他也同样传入。
不像其它格式,单独字节的读入必须被“%1r”明确规定。.
没有用“%c格式”指定宽度,这样的格式是不合格的。字节能被分配到INT,REAL,CHAR,BOOL,
ENUM数据类型的变量或这种类型的一维数组。
假定整数数据类型出现在“little endian”格式中,而且是有正负之分的。
Real的数据类型在IEEE754标准格式中用32位表示。
Bit 31 符号, Bit 30—23 指数 Bit 22—0 尾数
长沙工控帮教育科技有限公司
46
hWDHir
(Signal) INT X X X X X X
INT array X X X X X
REAL X X X X
REAL array X X X
(Signal)
BOOL(1) X X X X X X
任何不等于0(zero)的值可以被TURN转换。
系统控制值是否被ENUM值允许。如果不是,读失败。ENUM开始为1。
如果没有足够的格式数据,(例如%2.5r,但只有7位),没有数据从格式读出,CREAD语句失败。被
47 下面列出了所有语句的应用:
--语句总是等待语句完全的执行完成和它返回程序。这是绝对CREAD语句读文本通道的一个显著特 征。
--不注意这些,这些程序会被中断程序打断。任何访问通道的努力都会被中断子程序阻断。.
语句的全部解释和通道指示命令信息都可以在“CHANNEL”中找到。观看2.2.5.部分。
程序完整的范例可以在“CHANNEL”章找到。
长沙工控帮教育科技有限公司
48