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=通讯 
写 
写 
写 
写 
写