第13章 LabVIEW串口通信程序设计
XMT-3000A智能仪表有多种输入功能,一台仪表可以接热电偶(K、S、Wr、E、J、T、B、N)、热电阻(Pt100、Cu50)、电压(0~5V、1V~5V)、电流(0~10mA、4mA~20mA)等不同的输入信号。 PC机XMT-3000A智能仪表接热电阻输
L2COM1入时,采用三线制接线,消除了引线带
TXDRXDGND 2 5 3来的误差;接热电偶输入时,仪表内部
RS232常开 带有冷端补偿部件;接电压/电流输入2021 ALM225-141516+24RXDTXD GND DC24V时,对应显示的物理量程可任意设定。 XMT-3000A在计算机与智能仪器通电前,按图234910ALM11213常开13-24所示将热电阻传感器Cu50、上、
AC220V下限报警指示灯与XMT-3000A智能仪 L1Cu50 器连接。
图13-24 PC与智能仪表串口通信线路
通过串口线将计算机与智能仪器连
接起来:智能仪器的14端子(RXD)与计算机串口COM1的3脚(TXD)相连;智能仪器的15端子(TXD)与计算机串口COM1的2脚(RXD)相连;智能仪器的16端子(GND)与计算机串口COM1的5脚(GND)相连。
连接仪器与计算机串口线时,仪器与计算机严禁通电,否则极易烧毁串口。
本设计用到的硬件为:智能仪器(XMT-3000A型,需配置RS-232通信、上下限控制继电器、DC24V电源等模块),串口通信线(三线制),热电阻传感器(Cu50),指示灯(DC24V)等。
2.XMT-3000A智能仪器的参数设置
XMT-3000A智能仪器在使用前应对其输入/输出参数进行正确设置,设置好的仪器才能投入正常使用。
请按表13-1设置仪器的主要参数。
– 297 –
LabVIEW虚拟仪器数据采集与串口通信测控应用实战
表13-1 参 数 HIiAL LoAL Sn diP ALP Addr baud 参 数 含 义 上限绝对值报警值 下限绝对值报警值 输入规格 小数点位置 仪表功能定义 通信地址 通信波特率 30 20 传感器为:Cu50,则Sn=20 要求显示一位小数,则diP=1 要求上限报警由报警1 (ALM1)输出,下限报警由报警2(ALM 2)输出,报警时在下显示器显示报警符号,则ALP=10 0 4800 仪表的主要参数设置
设 置 值 3.XMT-3000A智能仪表的通信协议
XMT-3000A智能仪器使用异步串行通信接口,共有两种通信方式:RS232和RS485。接口电平符合RS232C或RS485标准中的规定。数据格式为一个起始位,8位数据,无校验位,2个停止位。通信传输数据的波特率可调为300~4800 bit/s。
XMT仪表采用多机通信协议,如果采用RS485通信接口,则可将1~64台的仪表同时连接在一个通信接口上;采用RS232C通信接口时,一个通信接口只能连接一台仪表。
RS485通信接口与RS422接口的信号电平相同,通信距离长达1km以上,优于RS232C通信接口。RS422为全双工工作方式,RS485为半双工工作方式,RS485只需两根线就能使多台XMT仪表与计算机进行通信,而RS422需要4根通信线。由于通信协议的限制,XMT只能工作在半双工模式,所以XMT仪表推荐使用RS485接口,以简化通信线路接线。为使普通计算机作上位机,可使用RS232C/RS485型通信接口转换器,将计算机上的RS232C通信口转为RS485通信口。
XMT仪表采用十六进制数据格式来表示各种指令代码及数据。 通信指令只有两条,一条为读指令,一条为写指令。 读指令格式为:地址代号+52H+参数代号。
返回:依次返回为测量值PV、给定值SV、输出值MV+报警状态、所读参数值。 写指令格式:地址指令+43H+参数代号+写入值的低位字节+写入值的高位字节。 返回:测量值PV、给定值SV、输出值MV+报警状态、被写入的参数值。 地址代号:为了在一个通信接口上连接多台XMT仪表,需要给每台XMT仪表编一个互不相同的代号,这一代号在本文约定称为通信地址代号(简称地址代号)。XMT有效的地址为0~63。所以一条通信线路上最多可连接64台XMT仪表。仪表的地址代号由参数Addr决定。
XMT仪表通信协议规定,地址代号为两个字节,其数值范围(十六进制)是80H~BFH,两个字节必须相同,数值为:仪表地址+80H。例如,仪表参数Addr=5(十六进制数为05H),05+80H=85H,则该仪表的地址表示为:85H 85H。
参数代号:仪表的参数用一个十六进制数的参数代号来表示。它在指令中表示要读/写的参数名。表13-2列出了XMT仪表可读/写的参数代号(部分)。
– 298 –
第13章 LabVIEW串口通信程序设计
表13-2 参 数 代 号 00H 01H 02H 03H 04H 05H 06H 参 数 名 SV HIAL LoAL dHAL dLAL dF CtrL XMT仪表可读/写的参数代号表 含 义 给定值 上限报警值 下限报警值 正偏差报警 负偏差报警 回差 控制方式 参 数 代 号 0BH 0CH 0DH 0EH 15H 16H 17H 参 数 名 Sn dIP dIL dIH baud Addr dL 含 义 输入规格 小数点位置 下限显示值 上限显示值 通信波特率 通信地址 数字滤波
如果向仪表读取参数代号在表格中参数以外,则返回参数值为错误信号(两个7F值)。
返回的测量值数据每两个8位数据代表一个16位整形数,低位字节在前,高位字节在后,负温度值采用补码表示,热电偶或热电阻输入时其单位都是0.1℃,回送的十六进制数据(两个字节)先转换为十进制数据,然后将十进制数据除以10再显示出来。
上位机每次向仪表发一个指令,仪表返回一个数据。编写上位机软件时,注意每条有效指令,仪表在0~0.36s内作出应答,而上位机也必须等仪表返回指令后,才能发新的指令,否则将引起错误。
4.温度测量与控制
(1)正确设置仪器参数后,仪器PV窗显示当前温度测量值。
(2)给传感器升温,当温度测量值大于上限报警值30℃时,上限指示灯L2亮,仪器SV窗显示上限报警信息。
(3)给传感器降温,当温度测量值小于上限报警值30℃,大于下限报警值20℃时,上限指示灯L2和下限指示灯L1均灭。
(4)给传感器继续降温,当温度测量值小于下限报警值20℃时,下限指示灯L1亮,仪器SV窗下限报警信息。
5.串口调试
XMT-3000A智能仪器使用异步串行通信接口,采用RS-232通信方式,其数据格式为:一个起始位,8个数据位,无校验位,2个停止位。
打开“串口调试助手”程序,首先设置串口号COM1、波特率4800、校验位NONE、数据位8、停止位2等参数(注意:设置的参数必须与仪器设置的一致),选择十六进制显示和十六进制发送方式,打开串口,如图13-25所示。
在“发送的字符/数据”文本框中输入读指令:80 80 52 0C ,单击“手动发送”按钮,则PC向仪器发送一条指令,仪器返回一串数据,如:3D 01 E7 03 64 00 01 00 ,该串数据在返回信息框内显示。
根据仪器返回数据,可知仪器的当前温度测量值为:01 3D(十六进制,低位字节在前,高位字节在后),十进制为31.7℃。
使用说明。
– 299 –
LabVIEW虚拟仪器数据采集与串口通信测控应用实战
图13-25 串口调试助手
若选择了“手动发送”,每单击一次可以发送一次;若选中了“自动发送”,则每隔设定的发送周期内发送一次,直到去掉“自动发送”为止。值得注意的一点是:选中“十六进制发送”后,发送框中所填字符每两个字符之间应有一个空格,如:01 23 00 34 45。还有一些特殊的字符,如回车换行,则直接敲入回车即可。
6.使用“计算器”实现数制转换
打开Windows附件中“计算器”程序,在“查看”菜单下选择“科学型”。 选择“十六进制”,输入仪器当前温度测量值:01 3D(十六进制,0在最前面不显示),如图13-26所示。
单击“十进制”选项,则十六进制数“013D”转换为十进制数“317”,如图13-27所示。仪器的当前温度测量值为:31.7℃(十进制)。为什么?
图13-26 在“计算器”中输入十六进制数 图13-27 十六进制数转十进制数
13.3.2 设计任务
。。。。。。。
– 300 –
第13章 LabVIEW串口通信程序设计
13.4 PC与PLC串口通信案例
可编程序逻辑控制器(简称PLC)主要是为现场控制而设计的,其人机界面主要是开关、按钮、指示灯等。其具有良好的适应性和可扩展能力得到越来越广泛的应用。采用PLC的控制系统或装置具有可靠性高、易于控制、系统设计灵活、能模拟现场调试、编程使用简单、性价比高、有良好的抗干扰能力等特点。但是,PLC也有不易显示各种实时图表/曲线(趋势线)和汉字、无良好的用户界面、不便于监控等缺陷。
20世纪90年代后,许多的PLC都配备有计算机通信接口,通过总线将一台或多台PLC相连接。计算机作为上位机可以提供良好的人机界面,进行系统的监控和管理,进行程序编制、参数设定和修改、数据采集等,既能保证系统性能,又能使系统操作简便,便于生产过程的有效监督。而PLC作为下位机,执行可靠有效的分散控制。用一台计算机(上位机)去监控下位机(PLC),这就要求PC与PLC之间稳定、可靠的数据通信。
图13-34是某型号PLC示意图。
图13-34 PLC产品示意图
13.4.1 PC与PLC串口通信硬件线路
西门子S13-200PLC系统为用户提供了灵活的通信功能。集成在S13-200中的点对点接口(PPI)可用普通的双绞线作波特率高达9600bit/s的数据通信,用RS-485接口实现的高速用户可编程接口,可使用专用位通信协议(如ASCII)做波特率高达38.4 kbit/s的高速通信并可按步调整。而PC的接口为RS-232,两者之间需要进行电平转换。利用西门子公司的PC/PPI电缆,可将S13-200CPU与计算机连接起来组成PC/PPI网络,实现点对点通信,如图13-35所示。
+DC24V-PC1L0.00.10.22L0.40.50.63L0.71.01.1NS7-200 PLC编程口DC24V1M0.00.10.20.30.42M1.01.11.21.3ML+L1AC220VRS232COM1RS485PC/PPI 图13-35 PC与S13-200PLC串口通信线路
本设计用到的硬件为:西门子S13-200PLC(CPU224),PC/PPI电缆,开关,指示灯(DC24V),直流电源(OUT:DC24V)等。
13.4.2 设计任务
利用LabVIEW编写程序实现PC与PLC串口通信。
任务要求。
(1)开关量输入:利用继电器开关改变某个输入端口的状态,程序读取该端口的输入状态(打开/关闭),并在程序中显示。
– 301 –