1、 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,用以区分。一次单
2、独的命令或者或响应对话叫做“帧” 。一个单独帧最多包换 131 个字节,字节以 ASCII 码方式发送或接受。注意:CS/CJ-系列 PLC,是一个 CPU 单元,一个串行通讯模块,或者一个串行通讯板。第一个字帧不能超过 30 个字。后面的不能超过 31 个字。当读写多余 30 个字的时候,将要分多条处理,第一帧是 30 字,后续帧是 31 字。HostLink 命令帧从电脑发送,然后由 PLC 收到命令后响应,在下面章节详解。2-2 命令/响应 格式单独 帧命令 如果一个命令没有超过 131 字节长。通讯可以使用一个单独帧来完成,这种帧称作“单独帧命令” 。命令帧格式: : 必须写在命令起始
3、单元号码: 表示每一个HOST LINK 单元,用BCD码表示 从30 30 到 33 31起始码: 两字节文本: 依据命令码设定参数FCS: 在计算机上计算两字节FCS (桢检查序列) ,更多细节,参看后续章节结束符: 设置*和CR (CHR$(13) )两字节,指明命令中止单独桢响应:如果一个响应不超过131字节,通讯可以以一个单独的响应桢结束。这就叫做“单独桢响应”响应桢格式 : 必须写在命令起始单元号码: 表示每一个HOST LINK 单元,用BCD码表示 从30 30 到 33 31起始码: 将接受到的命令码反馈回去。结束码: 反馈命令执行情况(比如 错误状态)文本: 仅当又读取数据
4、的时候才返回。FCS: 在计算机上计算两字节FCS (桢检查序列) ,更多细节,参看后续章节结束符: 两个字节指明命令的结束,设置*和 CR (CHR$(13) )两字节,指明命令中止错误响应格式: 如果一个接收错误或者一个执行命令错误产生的时候,将返回一个没有文本的响应。命令分割: 如果一个命令长度大于131字节,命令文本将要被分割,使用分隔符(CR code, CHR$(13))来代替在每一个命令结尾的结束符直到最后一桢,结束符应当在最后一桢发送。下列给出一个3个命令桢的范例。注意: 当发送一个写命令桢(WR,WL,WC,WD,etc.),请注意不要把命令拆分乘多个数据桢,那样会造成写入同
5、样的字。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会将
6、响应命令用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字节,包括结束符或者分隔符
7、2。从主控电脑里发出来的分隔符被检测依靠CR分隔符的存在,即使分隔符前面有数据。FCS(桢检查序列)计算:PLC计算每一个收到的命令桢FCS数值,然后通过比较计算出来的值和FCS值来检查错误。计算机主机必须在发送数据桢的时候来计算FCS的数值。当检查应答桢的错误的时候,也要通过主控电脑来计算出来的数值和FCS值进行比较,来排除错误。 数值被转化为HEX码,处理当作ASCII码注意: FCS 是一个8位数值转换为两位ASCII字节。这个8位数值使用异或指令操作,在发送中接受到的每个字节,顺序操作下去。从第一个字节,到数据桢中的文本的最后一个字节。有时候会再文本数据中发送非ASCII数据。如果数据
8、长度是7,最左边的数据为将在计算FCS之前屏蔽掉。应用例程:发送10 CS1 SAMPLE PROGRAM FOR EXCEPTION20 CLOSE30 CLS40 OPEN “COM:E73”AS#150 *KEYIIN60 INPUT ”DATA”,S70 IF S$=”THEN GOTO 19080 PRINT ”SEND DATA=”;S$90 ST$=S$100 INPUT ”SEND OK? Y or N?=”,BS110 IF B$=”Y” THEN GOTO 130 ELSE GOTO *KEYIN120 S$=ST$130 PRINT #T,S$ Sends command
9、 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)FCSP$ THEN FCSCK$=”ERR”530 PRINT ”FCSD$=”;FCSD$,”FCSP$=”;FCSP$,”FCSCK$=”;FCSCK$Normal FCS reception: “ ” (space); abnormal FCS reception: “ERR”540 RETU
10、RN2-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 R
11、G 命令桢中的字段名称。RD DM区域读取RJ AR 区域读取每一桢数据长度的差异,能够引起电脑 和先前C系列单元正常运行,然而和CS/CJ系列工作不正常。 检查电脑的操作程序,必要的情况下改正。C-Mode命令中的字数量(不包括RG命令)单元 C系列 CS/CJ系列 CVM1andCV系列 每一桢数据个数C-Mode中的RG命令注意:下列情况下桢数据长度会发生变化3-1 FINS 命令FINS 命令形成一个可以跨越不同欧姆龙网络的命令系统。它可以用于不同的控制操作,比如发送接受数据,改变炒作模式,等等。FINS 命令使自由的与不同网络的单元通讯,简单指定的网络,节点和单元。 FINS 命令又
12、以下特征:1.2.3 。 。 1他定义在应用层不依靠底层。 (尤其,物理层和数据链路层) 。这就允许了它可以跨越不同的网络和 CPU 总线。尤其的,它可以使用以太网,控制器联接,和HOSTLINK 网络,和 CPU 单元与 CPU 总线单元。注释:当使用以太网时候,FINS 命令能够发送 UDP/IP 报文头。当使用 HostLink的时候,可以发送 HostLink 命令把报文头。2FINS 命令可以跨越基于各种 CPU 的设备。例如 CPU 单元,CPU 总线单元,个人电脑。以及内部线路板,能够标识单元地址以及指定单元地址的。 3FINS 命令支持网络中转操作,它可以跨越网络层可以跨越多至 3 层网络(包括本地网络)FINS 命令的类型:FINS 命令右 2 种基本类型:一种是 CPU 单元寻址,另一种是 CPU 总线寻址。在CPU 单元的 FINS 命令中,命令寻址各个 CPU 单元,比如 CS/CJ 系列 CPU 单元,CV 系列CPU单元, C200HX/HG/HE CPU 单元等等。 。 。基本的编码系统相同,但是细节根据各种CPUd单元而定。