基于
MOXA
多串口卡的多串口通信的实现
Implementation
of
M
ultiple
Serial
Port
Communication
B
ased
on
M
OXA
Multiport
Serial
Bo
ard
柯伯乐
池
红
汤天浩
(
上海海运学院
,
上海
2001
35)
摘
要
借以
MOXA
多串口卡在工控同时与多台下位机或设备进行串口通信中的应用
,
深入讨论了在微软
Vi
sual
B
asic
开发平台上开
发控制中的串口通信的实现方法
,
包括与温控仪的通信。同时简要介绍了与
PLC
、
数字显示表以及热耦真空计的串行通信。
关键词
MOXA
卡
串行通信
温控仪
PLC
Visual
B
asic
A
bstract
B
y
u
si
ng
MOXA
m
ulti
port
serial
board
wi
th
its
function
of
commu
nicati
ng
with
multiple
slave
computers
or
devices
when
i
mplementing
process
control,
the
development
of
seri
al
commu
nicati
on
in
process
con
trols
includin
g
temperature
controller
wi
th
Microsoft
Visual
Basic
developi
ng
platform
is
d
escribed
in
detail.
Also,
the
serial
com
munication
with
PLC,
digital
display
and
thermocouple
vacuu
m
unit
is
presented.
Keyw
ords
MOXA
board
Seri
al
commu
nicati
on
Te
mperature
controller
PLC
Visual
Basic
1
MOXA
多串口卡简介
通常
,
工业控制计算机所提供的串口数量有限
,
然
而在工业控制中
,
往往会有许多设备需要与同一台工
业控制计算机进行串行通信。
MOX
A
多串口卡为此提
供了很好的解决方案。在本项目中
,
选用
MOXA
C168P
标准多串口卡。
C168P
提供
8
个串口用于与
Modem
、
打
印机等设备的通信
,
它支持
16
位数据格式
,
有全范围
的
I/
O
地址
,
另外
,
板卡上的
EEPRO
M
可以用来存储配
置信息。所有这些特征
,
保证了
C168P
的每一个串口
能够真正的相互独立。与传统的多串口卡相比
,
C168P
用软件设置
I/
O
和
IR
Q,
取代了过去用开关和跳线。
C168P
软件提供了简单易用的串行通信包
,
用户可以
用这软件包较容易地开发自己的应用程序。
2
Visual
Basic
实现串行通信要点
Visual
Basic
是微软公司推出的功能强大的开发平
台
,
由于其简单易用
,
开发功能强
,
开发周期短等优点
,
现今已在工业控制领域得到极为广泛的应用。
用户主要是借助
Visual
Basic
强大的控件库来开
发自己的应用程序。在串行通信中
,
主要用到的是
MSCo
mm
控件。
MSComm
控件提供下列两种处理通信
的方式
:
¹
事件驱动通信是处理串行端口交互作用的一
种非常有效的方法。在许多情况下
,
在事件发生时需
要得到通知
,
可以用
MSComm
控件的
OnComm
事件捕
获并处理这些通信事件。
OnCo
mm
事件还可以检查和
处理通信错误。
º
在程序的每个关键功能之后
,
通过检查
Com
-
mEvent
属性的值来查询事件和错误。如果应用程序较
小
,
并且是自保持的
,
这种方法可能是更可取的。
MSComm
的最基本的属性
:
CommPort:
设置并返回通信端口号。
Settings:
以字符串的形式设置并返回波特率、
奇偶
校验、
数据位、
停止位。
PortOpen:
设置并返回通信端口的状态。也可以打
开和关闭端口。
Input:
从接收缓冲区返回和删除字符。
Output:
向传输缓冲区写一个字符串。
MSComm
通信事件如下
:
c
omEvSend:
在传输缓冲区中有比
Sthreshold
数少的
字符。
c
omEvReceive:
收到
Rthreshold
个字符。该事件将
持续产生直到用
Input
属性从接收缓冲区中删除数
据。
c
omEvC
TS:
Clear
To
Send
线的状态发生变化。
c
omEvDSR:
Data
Set
Ready
线的状态发生变化。该
事件只在
DST
从
1
变到
0
时才发生。
c
omEvCD:
Carrie
r
Detect
线的状态发生变化。
c
omEvRing:
检测到振铃信号。一些
UAR
T(
通用异
步接收
)
传输
)
可能不支持该事件。
c
omEvEOF:
收到文件结束
(
ASCII
字符为
26)
字符。
对上面
MSComm
控件属性及事件的灵活应用
,
是用
V-
i
sual
Basic
完成串行通信的关键。