1.FIK C 温控仪表的通信系协议
RKC 的CD系列温控器的通信协议为 ANS I x328 (1 976) 2 5 A4 标准 RS一485 协定,由读数据命令 ,写 读 数据 命 令 ,应答 数 据 命令 组 成 。a ) 从仪表读命令 :RKC 温控器与上位 机通信 是被动方式 ,要读取 RKC 温控器数据 ,必须先从 上位机写一个读取命令 ,仪表响应后向上位机发出应答命令,仪表数据才读取到 上位机上 。上位机命令EOT (起始符)表地址号名E N 0(发送结束 符 )仪表应答STX (响应起始符 )
参数名数据E T X (响应结束符符 )BC C (数据效验和 )上位机重发命令 :A C K 和 N A K :如 上位机 对 同一块 表再 次读 取参数 , 可发送A CK 和 NA K 命令。ACK仪表按参数表的的顺序返 回下一参数数值NAK仪表返回同一参数的当时时刻数值 。b)向仪表写命令上位机 向仪表发出写入命令后 ,仪表发出应答命令 ,告诉上位机参数修改是否成功 。上位机命令EOT表地址号STX (写命令 )参数名数据ETXBCC仪表应答ACK参数修改完成;NAK参数修改失败 。对同一块 表再次 写,上位机重发命 令:可 以省略表 号 ,按 下面 格 式 发送 :STX参数名数据ETXBCCC)命令 中所有 的控制字符和数字都是 ASC II码形式,控制字符对 应的 A S C II码分别是:E 0 T( 0 4 H ) , E N 0( 0 5 H ) , S T X( 0 2 H ) ,E T X(0 3 H ) :地址号、参数名是 2 位 ASC II码,数据是 6 个A S C II码 :常用参数标识符对应 ASC II码分别是:测量值M 1(4 D H ) (3 1 H ),设定值 S 1(5 3 H ) (3 1 H ):B cc帧效验 : 占用 2 个 ASC II码 ,是从参数名到 ETX 为止的 A SC II码 的半加和。
2.R K C 沮控仪表的通信参数
RKC温控器要和 CP340 进行通信 ,在通信前需要 对温控器 通信参数进行 设定 。A D D 温控仪表地址号 :0 一一 9 任意设定 。bPS通信速率:2 :9600 bpSI T通信格式:8 位数据位 ,无效验位 ,1 位停止位
3.C P 340 的通信参数设定
通信协议:A S C II接收帧 结束方 式 :选 择终 了字符 结束方 式 ;通信 格式 :与 R K C 温 控仪 表设 定 一样 ,为9 6 0 0 , 8 , n , 1 :接 口方 式:半双工 R S 一4 8 5 ,其他为默认方式。
4.叠信系统 组成如下图:
当某块仪表得到轮询信号时,从该 数据区取 出数 据 ,并 启 动请 求 发送 信 号 。设 计程 序 如 下 :
N E T W
0 R K 1
T I T L E
=
A (
:
L
1 :
L
“表号”:
= = I
:
)
:
J N B
— O 0 1 :
L
0 :
1# 表数据区开始字节树
T
“表数据区起始字节 ”:
一 O 0 1 : N O P
0 :
N E T W O R K
2
T I T L E
=
A (
:
L
2 :
L
“表号 ”:
= = I
:
)
:
J N B
一 0 0 2 :
L
1 3:
2# 表数据区开始字节树
T
“表数据 区起始字 ”:
一 0 0 2 : N O P
0 :
N E T W O R K
3
T I T L E
=
.
.
.
.
.
.
其 他 表 如 上
N E T W O R K
4
T I T L E
=
A
T
0 :
A
M
0 1 :
=
L
1 2 .0 :
B L D
1 0 3 :
C A L L
“P
—S E N D ”. D B
R E O
L A D D R
D B
—
—N O
D B B N 0
区起始 字 节号 ”,
L E N
…
…
~
—
一
1 o ~
3 (
=
L
1 2 .0 .
:=
2 5 6 .
= 1 .
:= “ 表数据
=
1 3)
N O P
0
L
T
1 3 :
2# 表数据区开始字节树
0 0 2 : N O P
N E T W 0 R K
3
T I T L E
=
“表数据 区开始字 ”
0 :
5.2PLC 从仪表读
为了从仪表读 出数据 ,要建立两个容纳 1 5 块表的 DB 数据块 ,1 个 DB 块数据区存入要写入读取命令的的表地址 ,命令参数,每块仪表 占用数据区长度为 6 个字节。另 1 个 DB 块数据区留给 1 5 块仪表返 回的数据所使用 ,每块仪表返回 占用数 据 区长度为 1 1 个字节。2 个 DB 数据块 DB 块的数据区结构类同前表。读命令写入操作是连续调用,使用一个连续脉冲作为读命令写入请求 。N E T W O R KT I T L E=//表数据区开始字节数计算同仪 表写入数据程序 。
N E T W
0 R K
T IT I E
=
1
A
M
A N
T
=
L
B L D
1 0
CALL 裼 一
R E Q
0 1 :
0 :
1 2 .0
3 :
S E N D ?
L A D D R
D B N 0
起始字节号? :
L E N
N O P
0 :
N E TW O R K
2
T I T L E
=
A
M
0 .1
A N
T
0 :
=
L
1 2 .0
B L D
1 0 3 :
CALL F B
2 . D B
5
(
EN
— R
:=
L
12 .0 ,
L A D D R
:=
2 5 6 .
D B
— N O
:=
2 ,
D B B
— NO
:=
“表数据
区起始字 节号 ”) :
N O P
0 :
由于从上位机 发送 写入命令时,就不能从上位机发送读入命令 。上位机发送写入命令时,需终止发送读入命令;等上位机 发送完所 有的 1 5 块表 的写入命令后,才再重新发送连续的读入命令。 .3 BCC 计算
B CC 计算采用字异或命令,对从参数名到 ETx为止 的 A SC II码作半加和 。作成带 参数 的功 能块 ,使用时再作调用。
FUNCT l ON
“BCC 计算 ”: VO l D
T l T L E
=
V E R S l O N
: 0 .1
V A R
—
—I N P U T
i n 1
: B Y T E
:
i n 2
: B Y T E
:
i n 3
: B Y T E
:
i n 4
: B Y T E
:
E N D
—
—V A R
V A R
—
—T E M P
w 1
: W O R D
:
w 2
: W O R D
:
w 3
: W O R D
:
w 4
: W O R D
:
E N D
—
—V A R
B E G l N
N E T W O R K
2
T l T L E
=
//写给定 BCC 计算
L
B # 1 6 # 5 3
L
B # 1 6 # 3 1
X O W
:
L
# w l
X O W
:
L
# w 2 :
X O W
:
L
# w 3 :
N E T W O R K
1
T l T L E
=
//写给定 BCC 计算
L
# i n 1 :
T
拌w
l:
L
# in 2 ;
T
# w 2 ;
L
# in 3 :
T
# w 3 :
X O W
:
L
B # 1 6 # 2 E :
X O W
;
L
# w 4 :
X O W
:
L
B # 1 6 # 3 :
X O W
:
T
M W
2 0 6 :
E N D F U N C T l 0 N
5.4
十进 制数转 A SC II码和 ASC II码转十进制 数计 算直接调用 STEP 7 里的标准库里的十进制数转字符 串和字符 串转十进制数 命令,对十进制数转字符串转换完成后,要根据转换完成的字符数,重新安排个 、十、百 、千位,以便得到正确数据 。RKC温控器
6