logo资料库

岛电FP93中文通讯协议.pdf

第1页 / 共24页
第2页 / 共24页
第3页 / 共24页
第4页 / 共24页
第5页 / 共24页
第6页 / 共24页
第7页 / 共24页
第8页 / 共24页
资料共24页,剩余部分请下载后查看
FP93 调节器通讯指南 本资料和开发的学习软件,作为用户学习 FP93 仪表通讯编程的参考,不足之处请予以指正。 南京汇皆奥自动化科技有限公司 电话:025-83767526 83767527 传真:83767527 ──── 目录 ──── 1. 软件清单 2. FP93 通讯协议及基础知识 3. 通讯协议以及 BASIC 程序方法 4. BASICA 的程序通讯软件说明: 5. 附录:A.通讯串口接线方法 B.有关 RS422/485 通讯口的技术数据 1.软件清单 在软盘内,提供了下述的软件和资料 FP93 通讯协议.DOC BASICA.EXE - BASIC 语言(DOS 环境下) MR13.BAS - BASIC 程序的 PC 机 232 口 422 口测试软件 2.FP93 通讯协议 1) 串口接线 ①计算机与带 RS-232C 通讯口的连线 ②计算机与 RS-232C/RS-485A 通讯变换器连线 ③RS-232C/RS-485 通讯变换器与仪表 RS-485 通讯口的连线 ④D 型 25 针、九针串口接线对照表 2) 通讯协议 3) 参数设置 设置调节器通讯地址和使用的 PC 机串口,及通讯参数设置。 3. 进入通讯命令学习前的准备工作 3-1. 初次连接系统的准备工作 (仪表未连接) 1.)参照串口接线窗口和附录A.通讯串口接线方法,对系统进行正确的接线。 2.)PC 机 RS232 通讯口正常(包括地线、握手信号),将 SD,RD 端短接。 3.)RS232 接口至 RS232/RS485 转换器连线是否正确。 注意:9 针与 25 针串口的定义区别。 4.)参见 232C/RS422 或 232/RS485 转换器 C28A 的自检方法,检查通讯转换器。 5.)RS232/RS485 或 RS232/RS422 转换器到仪表通讯口的连线正确。  如果远距离通讯(1200 米),利用示波测量发送波形的前沿,确定通讯线路的传输品质,选择合适的通 讯波特率。  注:如采用 PC 机内式转换卡,可省去前两步骤。 其它的操作:
连接仪表且上电,确信仪表已进行了有关的通讯参数(地址、波特率)设定。 在学习软件中相应的画面应设置与仪表相一致的 PC 机通讯地址和字符参数,否则将不能正常通讯。 注:仪表的有关设定请参阅 FP93 操作流程图 4.通讯协议以及 BASIC 程序方法 4-1. 通讯的含意 RS232 接口,只能单台点对点的通迅,不能进行总线的并联,但通讯软件和 485 方式相同 ┌─────────────────────────────┐ │┌───────┐ │ ││ 上位机的 │ 485 通讯示意图 │ ││ 485 │ │ ││ 通讯接口 │ │ │└──┬─┬──┘ │ │ │ │ 发送/接收双向数据总线 │ │ │ ├─────────┬─────────┐ │ │ │ │ │ │ │ │ ├─┼───────┬─┼───────┐ │ │ │ ┌─┴─┴─┐ ┌─┴─┴─┐ ┌─┴─┴─┐ │ │ │ FP93-(1) │ │ FP93-(2) │. . │ FP93(99) │ │ │ └─────┘ └─────┘ └─────┘ │ └─────────────────────────────┘ RS485 通讯采用差动的两线发送,两线接收的双向数据总线两线制方式。上位机和下位调节器的内部 接收器的接收高(RD+)和低(RS-)线以及内部发送器的发送高 (SD+)和低(SD-)线都挂在数据总线上,平 时内部发送器的发送线处于高阻关闭态。如下图通讯过程示意图所示,通常上位机是讲者,下位调节器是听 者,并按主、从方式进行通讯,多台仪表的通讯靠地址(设备号)的不同来区分。通讯中,发送方需将发送线 置于低阻态。发送完成后,发送线需重新恢复到高阻关闭态。接收方在接收数据完成后,又成为发送方。 因此,RS485 接口存在着双向数据总线转换冲突问题。在上位机可由软件调整,下位可由仪表的 RS485 延 时时间窗口调整。 注意:通讯时,上位机必须根据调节器设定的地址,共同约定的数据格式,波特率等通讯规约,发送通讯 文件,下位调节器在接收地址符合,接收字符格式和校验正确后才能进行正常的通讯。 4-2. 通讯协议说明: 通讯协议的通讯过程示意图 上位机 调节器 ┏━━━━━┓ 发送 ┃发送全文件┃ ───────────> (接收) ┗━━━━━┛ ↓ 返回 ┏━━━━━┓ (接收) <─────────── ┃返回全文件┃ ┗━━━━━┛ 4-3. 发送全文件和返回全文件的组成 4.3.1 通讯控制符的三种格式:1.STX_ETX_CR 2.STX_ETX_CRLF 3.@_:_CR 4.3.2 通讯发送格式
a ⑴ STX STX b ⑵ 0 0 ⑶ 1 1 c ⑷ 1 1 d ⑸ R W e ⑻ 0 8 ⑹ 0 0 ⑺ 1 1 ⑼ 0 c f ⑽ 0 0 g ⑾ ---- ,**** h ⑿ ETX ETX i ⒀ D 7 ⒁ A 8 j ⒂ CR CR 1. 通讯发送格式的解释 a 通讯的起始符,[⑴一位,STX:(02H)或 ”@”(40H)] b 通讯下位机地址[⑵、⑶两位],由 8 位二进制组成。地址范围 1~99(1:0000 0001~0110 0110),这 8 位二进制码被分成高 4 位和低 4 位,其中高 4 位被送入⑵中,低 4 位被送入⑶,并转换成 ASCII 码。 c 通讯下位机地址的子地址[⑷一位],这位被固定为 1(31H)。 d 通讯命令类型[⑸一位]。”R”(52H),表明在上位机发送或仪表应答中的读命令。”W”(57H),,表明在 上位机发送或仪表应答中的写命令。”B” 表明在上位机以广播方式发送命令,但 FP93 不支持广播方 式,”B” 只作为预留命令。 e 通讯命令代码[⑹、⑺、⑻、⑼四位]。是 16 位二进制代码(0~65535),这 16 位被分成四组,并转 换成相应的 ASCII 码。命令代码详见命令代码表。 f 通 讯 命 令 连 续 读 代 码 [ ⑽ 一 位 ] 。 表 明 上 位 机 要 连 续 读 取 多 少 个 参 数 。 这 位 取 值 范 围”0”(30H) ~”9”(39H),十个数。实际的连续读参数的个数=该位数值+1,写命令时,这一位被固定 为”0”(30H)(一个)。 g 数据项[⑾这位的数据长度决定于这位的数据量,既这位的数据长度不定]。此项一般用于应答中。数 据总是以”,”(2CH)为数据项的句首。数据项与数据项之间不需要任何分割符。数据长度主要取决于第 ⑽的方式。每一个数据项由 16 位二进制代码组成(1 个字),每 4 位被分成一个数据单元,同时每个 数据单元又被转换成 ASCII 数据。当⑸位为”R”读命令时,此位不用。 ”,” 2CH 第一数据项 第二数据项 高位 第一 单元 第二 单元 第三 单元 低位 第四 单元 高位 第一 单元 第二 单元 第三 单元 低位 第四 单元 ………………… ………………… ………………… ………………… 第 N 数据项 高位 第一 单元 第二 单元 第三 单元 低位 第四 单元 h 数据发送结束符[⑿一位,ETX(03H)或 ”:”(3AH)]。所有的数据和命令再此位之前都以发送完成,遇到 此字符表明结束。 i BCC 块校验 [⒀、⒁两位] 三种 BCC 块校验和无校验。上位机的 BCC 校验应通过软件处理。仪表的 BCC 校验可在[1-34]窗口设置。当 BCC 校验结果有错误时,将没有应答。BCC 校验数据被分成高 4 位和低 4 位,并被转换成 ASCII 码, ⒀:高 4 位的 ASCII 码。⒁:低 4 位的 ASCII 码。 1).ADD 块校验 (加校验) 例:STX 0 1 1 R 0 1 0 0 0 EXT D A CR (02H)+(30H)+(31H)+(31H)+(52H)+(30H)+(31H)+(30H)+(30H)+(30H)+(03H)=1DAH BCC 校验结果 ⒀:"D"=44H ⒁:"A"=41H 2).ADD_TWO’S CMP 块校验(求补校验) 例:STX 0 1 1 R 0 1 0 0 0 EXT D A CR (02H)+(30H)+(31H)+(31H)+(52H)+(30H)+(31H)+(30H)+(30H)+(30H)+(03H)=26H BCC 校验结果 ⒀:"2"=32H ⒁:"6"=36H 3).XOR 块校验(异或校验) 例:STX 0 1 1 R 0 1 0 0 0 EXT 5 0 CR (02H)⊕(30H)⊕(31H)⊕(31H)⊕(52H)⊕(30H)⊕(31H)⊕(30H)⊕(30H)⊕(39H)⊕(03H)=50H BCC 校验结果 ⒀:"5"=35H ⒁:"0"=30H
j 回车符[⒂一位 CR(0DH)] 全文结束符既回车符。 4).None 无校验 4.3.3 通讯应答格式 a ⑴ STX STX d ⑸ R W c ⑷ 1 1 b ⑵ 0 0 ⑶ 1 1 h ⑿ ETX ETX g ⑾ ,**** ---- e ⑹ 0 0 ⑺ 1 1 i ⒀ 3 4 ⒁ C E j ⒂ CR CR 1. 通讯应答格式的解释 a 通讯的起始符,[⑴一位,STX:(02H)或 ”@”(40H)] b 通讯下位机地址[⑵、⑶两位],由 8 位二进制组成。地址范围 1~99(1:0000 0001~0110 0110),这 8 位二进制码被分成高 4 位和低 4 位,其中高 4 位被送入⑵中,低 4 位被送入⑶,并转换成 ASCII 码。 c 通讯下位机地址的子地址[⑷一位],这位被固定为 1。 d 通讯命令类型[⑸一位]。”R”(52H),表明在上位机发送或仪表应答中的读命令。”W”(57H),,表明在 上位机发送或仪表应答中的写命令。”B”(42H) 表明在上位机以广播方式发送命令,但 FP93 不支持广 播方式,”B”只作为预留命令。 e 应答代码[⑹、⑺两位]。是 8 位二进制代码(0~255),这 8 位被分成高 4 位和低 4 位,并转换成相 应的 ASCII 码。应答代码详见应答代码表。⑹:高 4 位的 ASCII 码。⑺:低 4 位的 ASCII 码。 g 通讯数据[⑾这位的数据量决定于这位的数据,既这位的数据长度不定]。数据总是以”,”(2CH)开头, 数据项与数据项之间不需要任何分割符。数据的长度主要取决于第⑽的方式。每一个数据项由 16 位 二进制代码组成(1 个字),每 4 位被分成一个数据单元,同时每个数据单元又被转换成 ASCII 数据。 当⑸位为 ”W”写命令时,此位不用。 ”,” 2CH 第一数据项 第二数据项 高位 第一 单元 第二 单元 第三 单元 低位 第四 单元 高位 第一 单元 第二 单元 第三 单元 低位 第四 单元 ………………… ………………… ………………… ………………… 第 N 数据项 高位 第一 单元 第二 单元 第三 单元 低位 第四 单元 h 数据发送结束符[⑿一位,ETX(03H)或 ”:”(3AH)]。所有的数据和命令再此位之前都以发送完成,遇到 此字符表明结束。 i BCC 块校验 [⒀、⒁两位] 三种 BCC 块校验和无校验。上位机的 BCC 校验应通过软件处理。仪表的 BCC 校验可在[1-34]窗口设置。当 BCC 校验结果有错误时,将没有应答。BCC 校验数据被分成高 4 位和低 4 位,并被转换成 ASCII 码, ⒀:高 4 位的 ASCII 码。⒁:低 4 位的 ASCII 码。 1).ADD 块校验 (加校验) 例:STX 0 1 1 R 0 1 0 0 0 EXT D A CR (02H)+(30H)+(31H)+(31H)+(52H)+(30H)+(31H)+(30H)+(30H)+(30H)+(03H)=1DAH BCC 校验结果 ⒀:"D"=45H ⒁:"A"=41H 2).ADD_TWO’S CMP 块校验(求补校验) 例:STX 0 1 1 R 0 1 0 0 0 EXT 2 6 CR (02H)+(30H)+(31H)+(31H)+(52H)+(30H)+(31H)+(30H)+(30H)+(30H)+(03H)=26H BCC 校验结果 ⒀:"2"=32H ⒁:"6"=36H 3).XOR 块校验(异或校验) 例:STX 0 1 1 R 0 1 0 0 0 EXT 5 0 CR (02H) (30H)+(31H)+(31H)+(52H)+(30H)+(31H)+(30H)+(30H)+(30H)+(03H)=50H
BCC 校验结果 ⒀:"5"=35H ⒁:"0"=30H j 回车符[⒂一位 CR(0DH)] 全文结束符既回车符。 e 4).None 无校验 4.3.4 读命令、写命令及应答举例 1.读命令 f d ⑽ ⑸ 4 R 34H 52H d:这位表明这是一个读命令。 e:这位表明这个读命令是读控制输出的比例带 1 的值。 f:这位表明这读命令要从这个命令后连续读多少个参数。 具体含义如下: ⑹ 0 30H ⑺ 4 34H ⑼ 0 30H ⑻ 0 30H 这位表明这个读命令是读的控制输出的比例带 1 =0400H (十六进制) =0000 0100 0000 0000 (二进制) 这位表明这读命令要读多少个参数。 =4H (实际读取参数的个数) =5(4+1) =)0100 (二进制) =4 (十进制) g e 7 37H 8 38H E 45H 0 30H 0 30H , 2CH 0 30H ⑺ 0 30H ⑹ 0 30H ……………… ………………… ………………… 第一数据项 ⑾ 第二数据项 0 30H 2.正确的应答 D ⑸ R 1 52H 31H d:这位表明应答的是一个读命令。 e:这位表明这是一个应答代码<0(30H) 0 (30H) 正确的应答>。(详见应答代码表) g:这位表明这应答的读命令返回的数据项。 3.不正确的读命令应答 D ⑸ R 52H ⑹ 0 30H ⑺ 7 37H 0 30H 第五数据项 0 30H 0 30H 3 33H e d:这位表明应答的是一个读命令。 e:表明这是一个应答代码<0(30H)7(30H)是数据格式错误的应答>。(详见应答代码表) 4.写命令 注:写命令时,应先将 COM 模式至成 COM 状态。由 LOC 状态转换成 COM 状态不能由仪表窗口完成,只能由 上位机完成。由 COM 状态转换成 LOC 状态上位机、仪表窗口均可完成。 d e g f
⑾ 2 32H 8 38H 0 30H 0 30H , 2CH ⑻ 0 30H ⑽ 0 30H ⑼ 0 30H ⑺ 4 34H ⑹ 0 30H ⑸ W 57H d:这位表明应答的是一个写命令。 e:这位表明这个命令是写的控制输出比例带 1 的值。 f:这位表明这个命令要写 1 个参数。(写命令时这位固定为 0) g 通讯数据[⑾这位的数据量决定于这位的数据,既这位的数据长度不定]。数据总是以”,”(2CH),数据 项与数据项之间不需要任何分割符。数据的长度主要取决于第⑽的方式。每一个数据项由 16 位二进 制代码组成(1 个字),每 4 位被分成一个数据单元,同时每个数据单元又被转换成 ASCII 数据。 具体含义如下: 这位表明这个写命令是写的控制输出 1 的比例带参数 =0400H (十六进制) =0000 0100 0000 0000 (二进制) 这位表明这读命令要写多少个参数。 =0H =0000 (二进制) =0 (十进制) (实际写参数的个数) =1 (0+1) 被写入的具体数据 =0028H (十六进制) =0000 0000 0010 1000 (二进制) =40 (十进制) e 5.正确的写命令应答 d ⑸ W 57H ⑹ 0 30H ⑺ 0 30H d:这位表明这是一个写应答的命令。 e:表明这是一个应答代码<0(30H)0(30H)是一个写命令的正确应答>。(详见 4-4 应答代码表) 6.不正确的写命令应答举例 d ⑸ W 57H ⑹ 0 30H ⑺ 9 30H e d:这位表明这是一个写应答的命令。 e:表明这是一个应答代码<0(30H)9(39H)是一个不正确写命令的应答>。(详见应答代码表) 4-4 应答代码表 应答代码 二进制码 ASCII 代码类型 代码类型的详细说明
0000 0000 “0”,”0”:30H,30H 正确的应答 读、写命令的正确应答 0000 0001 “0”,”1”:30H,31H 硬件错误 0000 0111 “0”,”7”:30H,37H 格式错误 0000 1000 “0”,”8”:30H,38H 命令或数据的数量 0000 1001 “0”,”9”:30H,39H 数据错误 错误 0000 1010 “0”,”A”:30H,41H 执行命令错误 0000 1011 “0”,”B”:30H,42H 写模式错误 0000 1100 “0”,”C”:30H,43H 其他或操作错误 当发生硬件错误例如帧溢出或 奇偶校验错误被检测到时。 格式上和设计的固定格式不符。 命令代码或数据的数量和设计 的要求不同。 被写入的数据不是有效的可被 设定的范围 执行命令的接收是在一定条件 下的(例如 AT),否则将不被执 行 一些类型的数据在某一时刻将 不能及时 被写入。这种数据写入应在这种 数据允许写入的时刻写入。 写命令中的特殊数据或操作,不 能被加入或接收。 小数点的表示方法:将小数点去掉后,直接连同小数点后的数转换成十六进制数。小数点的位置与使 用的量程有关。这四位十六进制代码(16 位二进制码)的使用范围(-32768~32767)。 例: 十进制 十六进制 20.0% → 200 → 008C 99.99 → 9999 → 270F -40.00℃ → -4000 → F060 4-5 通讯命令表 命令代码 (十六进制) 参数 参数的详细说明 0040 0041 0042 0043 序列代码 1 序列代码 2 序列代码 3 序列代码 4 这 4 个序列代码不能同时被读取。 读/写 读 读 读 读 这些命令由 16 位二进制组成,被分成高 8 位和低 8 位两个单元。不用的地址用”0”填充。 例:SR91 命令 高 4 位 低 4 位 高 4 位 低 4 位 0040 “F” “P” 46H 50H 0041 “9” “3” 39H 33H 0042 00H 00H 0043 00H 00H 命令代码 (十六进制) 0100 0101 0102 0103 参数 PV_W SV_W 参数的详细说明 测量值 当前执行的设定值 OUT1_W 控制输出的值 保留 值被固定为 0000H 读/写 读 读 读 读
0104 0105 0106 0107 EXE_FLG 执行标志(不执行时=0) EV_FLG 事件输出标志(无事件输出时=0000) 保留 值被固定为 0000H EXE_PID 当前执行的 PID 号 读 读 读 读 EXE_FLG 和 EV_FLG 的详细说明如下: D15 D14 D13 D12 D11 D10 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0 EXE_FLG 0 0 0 0 0 0 0 COM 0 0 0 0 0 0 MAN AT EV_FLG 0 0 0 0 0 0 0 0 0 0 0 0 0 0 EV2 EV1 .上限超量程时,EV_FLG 的将被赋值为 7FFFH。 .下限超量程时,EV_FLG 的将被赋值为 7FFFH。 DI 开关状态标志位 DI_FLG 010B 读 DI_FLG 的详细说明如下: D15 D14 D13 D12 D11 D10 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0 DI_FLG 0 0 0 0 0 0 0 COM 0 0 0 0 DI4 DI3 DI2 DI1 0110 0111 0112 0113 0114 0115 0120 0121 0122 0123 0124 0125 0126 UNIT 单位 0=℃ 1=℉ RANGE 测量范围(见测量范围代码表) 保留 保留 DP SC_L SC_H E_PRG E_PTN 保留 E_RPT E_STP E_TIM E_PID 小数点位置 0=无 1=0.1 2=0.01 3=0.001 测量范围下限值 -1999~9989 测量范围上限值 -1989~9999 程序执行标志 当前执行的曲线号 保留 曲线重复次数 当前执行曲线的步 当前执行步的剩余时间 当前执行的 PID 号 读 读 读 读 读 读 读 读 读 读 读 读 E_PRG 的详细说明如下: D15 D14 D13 D12 D11 D10 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0 E_PRG PRG 0 0 0 0 UP LVL DW 0 0 0 0 0 GUA HLD RUN PRG 1:程序状态 0:定值状态 GUA 1:确保平台 0:无确保平台 UP 1:程序状态 0:定值状态 HLD 1:程序保持 0:无程序保持 LVL 1:程序状态 0:定值状态 RUN 1:运行 0:无运行 DW 1:程序状态 0:定值状态 .程序复位时,E_PRG 被赋值为 7FFFH。 0182 0183 0184 0185 OUT1_W 在手动方式下设置输出的值 保留 保留 AT MAN 自整定 0=不执行,1=执行 手动 0=自动, 1=手动 018C COM 通讯 0=本机, 1=通讯 写 写 写 写 写
分享到:
收藏