2-1 C-MODE 命令
C-MODE(HOST LINK)命令组成一个串行通讯命令/应答系统,用以在cpu单元和主控电脑之间执行各种控制操作。这些操作包括从I/O内存中读取或者写入,改变操作模式,执行强制设置或者强制复位操作,等。。。
和FINS 命令不同,C-MODE命令只能被CPU单元寻址,但是它不能使用本地网络外的信息服务,不能使用例如文件操作功能。
C-MODE(HostLink)命令能够从一台连接着CS/CJ系列的HostLink单元的主机上发。
一台电脑主机最多可以连接32台PLC单元。每个PLC被指定一个单元码从0-31,用以区分。
一次单独的命令或者或响应对话叫做“帧”。一个单独帧最多包换131个字节,字节以ASCII码方式发送或接受。
注意:CS/CJ-系列PLC,是一个CPU单元,一个串行通讯模块,或者一个串行通讯板。
第一个字帧不能超过30个字。后面的不能超过31个字。当读写多余30个字的时候,将要分多条处理,第一帧是30字,后续帧是31字。
HostLink命令帧从电脑发送,然后由PLC收到命令后响应,在下面章节详解。
2-2 命令/响应 格式
单独 帧命令 如果一个命令没有超过131字节长。通讯可以使用一个单独帧来完成,这种帧称作“单独帧命令”。
命令帧格式:
@ : 必须写在命令起始
单元号码: 表示每一个HOST LINK 单元,用BCD码表示 从30 30 到 33 31
起始码: 两字节
文本: 依据命令码设定参数
FCS: 在计算机上计算两字节FCS (桢检查序列),更多细节,参看后续章节
结束符: 设置*和CR (CHR$(13))两字节,指明命令中止
单独桢响应:
如果一个响应不超过131字节,通讯可以以一个单独的响应桢结束。这就叫做“单独桢响应”
响应桢格式
@ : 必须写在命令起始
单元号码: 表示每一个HOST LINK 单元,用BCD码表示 从30 30 到 33 31
起始码: 将接受到的命令码反馈回去。
结束码: 反馈命令执行情况(比如 错误状态)
文本: 仅当又读取数据的时候才返回。
FCS: 在计算机上计算两字节FCS (桢检查序列),更多细节,参看后续章节
结束符: 两个字节指明命令的结束,设置*和CR (CHR$(13))两字节,指明命令中止
错误响应格式: 如果一个接收错误或者一个执行命令错误产生的时候,将返回一个没有文本的响应。
命令分割: 如果一个命令长度大于131字节,命令文本将要被分割,使用分隔符(CR code, CHR$(13))来代替在每一个命令结尾的结束符直到最后一桢,结束符应当在最后一桢发送。下列给出一个3个命令桢的范例。
注意:
当发送一个写命令桢(WR,WL,WC,WD,etc.),请注意不要把命令拆分乘多个数据桢,那样会造成写入同样的字。
1,2,3。。。
1。从主控电脑,在命令桢1的最后加一个CR分割符然后发送
2。当PLC接受到这个分割符后,将仅仅返回这个分割符到主控电脑
3。从主控电脑,在命令桢2的最后加一个CR分割符然后发送
4。当PLC接受到这个分割符后,将仅仅返回这个分割符到主控电脑
5。从主控电脑,在命令桢2的最后加一个*CR结束符然后发送
6。当PLC接收到这个*CR结束符,返回一个结尾带有*CR结束符然的响应格式。
下图表明一个超过131字节的命令格式。
注意:
一个“分割符”是一个CR 码[CHR$(13)],当单个字节发送的时候表示 命令桢发送为完成响应。
相应信号的分割:
如果一个响应超过131字节长度,PLC会将响应命令用CR 分割符结尾,以代替结束符,一直发送到最后一桢,结束符在最后一桢发送。
下面例子,表明一个被分成3份的响应桢。
1,2,3。。。
1。当PLC接收到一个从主控电脑发来的命令桢,它将向主控电脑发送一个带有(CR)分割符的响应桢1。
2。只有一个分割符从主控电脑发送给PLC
3。当PLC 收到这个分割符CR ,将反馈带有分割符CR的应答桢2到主控电脑
4。只有一个分隔符CR 从主控电脑发送到PC
5。当PLC受到这个分隔符CR后,反馈一个带有结束符的应答桢3到主控电脑。
下图表示一个长度超过131字节的应答桢格式。
注意:
1。在分割的命令或者应答桢内字节数量不能够超过128字节,包括结束符或者分隔符
2。从主控电脑里发出来的分隔符被检测依靠CR分隔符的存在,即使分隔符前面有数据。
FCS(桢检查序列)计算:
PLC计算每一个收到的命令桢FCS数值,然后通过比较计算出来的值和FCS值来检查错误。
计算机主机必须在发送数据桢的时候来计算FCS的数值。
当检查应答桢的错误的时候,也要通过主控电脑来计算出来的数值和FCS值进行比较,来排除错误。
数值被转化为HEX码,处理当作ASCII码
注意: FCS 是一个8位数值转换为两位ASCII字节。这个8位数值使用异或指令操作,在发送中接受到的每个字节,顺序操作下去。
从第一个字节,到数据桢中的文本的最后一个字节。有时候会再文本数据中发送非ASCII数据。
如果数据长度是7,最左边的数据为将在计算FCS之前屏蔽掉。
应用例程:
发送
10 ’CS1 SAMPLE PROGRAM FOR EXCEPTION
20 CLOSE
30 CLS
40 OPEN “COM:E73”AS#1
50 *KEYIIN
60 INPUT ”DATA–”,S
70 IF S$=””THEN GOTO 190
80 PRINT ”SEND DATA=”;S$
90 ST$=S$
100 INPUT ”SEND OK? Y or N?=”,BS
110 IF B$=”Y” THEN GOTO 130 ELSE GOTO *KEYIN
120 S$=ST$
130 PRINT #T,S$ Sends command to PC.
140 INPUT #1,R$ Receives command from PC.
150 PRINT ”RECV DATA=”;R$
160 IF MID$(R$,4,2)=”EX”THEN GOTO 210 Identifies command.
170 IF RIGHT$(R$,1)<>”*”THEN S$=””:GOTO 130
180 GOTO *KEYIN
190 CLOSE 1
200 END
210 PRINT ”EXCEPTION!!DATA”
220 GOTO 140
说明:
1.2.3...
1. 主控电脑发送接收程序开始,HostLink命令为输入
2. HostLink输入命令发送到PLC,接收到的数据显示在屏幕上
注意:
程序到了这里不包含接收到非正常数据的错误处理例程(比如,没有收到FCS),在实际例程中要加入错误处理。
400 *FCSCHCK
410 L=LEN(RESPONSE$) Transmission/reception data
420 Q=0:FCSCK$=””
430 A$=RIGHT$(RESPONSE$,1)
440 PRINT RESPONSE$,A$,L
450 IF A$=”*”THEN LENGS=LEN(RESPONSE$)–3
ELSE LENGS=LEN(RESPONSE$)–2
460 FCSP$=MID$(RESPONSE$,LENGS+1,2) FCS data that is received
470 FOR I=1 TO LENGS Number of characters in FCS calculation
480 Q=ASC(MID$(RESPONSE$1,1))XOR Q
490 NEXT 1
500 FCSD$=HEX$(Q)
510 IF LEN(FCSD$) =1 THEN FCSD$=”0”+FCSD$ FCS calculation result
520 IF FCSD$<>FCSP$ THEN FCSCK$=”ERR”
530 PRINT ”FCSD$=”;FCSD$,”FCSP$=”;FCSP$,”FCSCK$=”;FCSCK$
Normal FCS reception: “ ” (space); abnormal FCS reception: “ERR”
540 RETURN
2-4 在先前型号中使用程序的注意事项
2-4-1 使用电脑程序对C系列HostLink单元的写操作
每一个帧的字数
当使用下列指令对I/O内存进行读操作的时候,每一个帧的文本区域的字长度 CS/CJ系列单元和C 系列单元是不同的。C 系列单元在第一个数据帧内处理29个字,随后数据帧内处理30个字。 CS/CJ系列第一个帧处理30个字,后续帧处理31个字。
起始码 名称
RR CIO区域读取
RL LR 区域读取
RH HR 区域读取
RC 定时器/计数器 PV读取
RG 定时器/计数器 状态读取
注意: 对于RG命令来说 每一个桢的数据长度是不同的,对于其他C-Mode命令来说。更多细节参见C-Mode RG 命令桢中的字段名称。
RD DM区域读取
RJ AR 区域读取
每一桢数据长度的差异,能够引起电脑 和先前C系列单元正常运行,然而和CS/CJ系列工作不正常。 检查电脑的操作程序,必要的情况下改正。
C-Mode命令中的字数量(不包括RG命令)
单元 C系列 CS/CJ系列 CVM1andCV系列 每一桢数据个数
C-Mode中的RG命令
注意:
下列情况下桢数据长度会发生变化
3-1 FINS命令
FINS命令形成一个可以跨越不同欧姆龙网络的命令系统。它可以用于不同的控制操作,比如发送接受数据,改变炒作模式,等等。FINS命令使自由的与不同网络的单元通讯,简单指定的网络,节点和单元。
FINS 命令又以下特征:
1.2.3.。。
1.他定义在应用层不依靠底层。(尤其,物理层和数据链路层)。这就允许了它可以跨越不同的网络和CPU总线。尤其的,它可以使用以太网,控制器联接,和HOSTLINK网络,和CPU单元与CPU总线单元。
注释:当使用以太网时候,FINS命令能够发送UDP/IP报文头。当使用HostLink的时候,可以发送HostLink命令把报文头。
2.FINS命令可以跨越基于各种CPU的设备。例如CPU单元,CPU总线单元,个人电脑。以及内部线路板,能够标识单元地址以及指定单元地址的。
3.FINS命令支持网络中转操作,它可以跨越网络层可以跨越多至3层网络(包括本地网络)
FINS命令的类型:
FINS命令右2种基本类型:一种是CPU单元寻址,另一种是CPU总线寻址。在CPU单元的FINS命令中,命令寻址各个CPU单元,比如CS/CJ系列CPU单元,CV系列
CPU单元,C200HX/HG/HE CPU 单元等等。。。基本的编码系统相同,但是细节根据各种CPUd单元而定。