电子秤与计算机通讯Word文档下载推荐.docx
- 文档编号:21727698
- 上传时间:2023-02-01
- 格式:DOCX
- 页数:11
- 大小:65.34KB
电子秤与计算机通讯Word文档下载推荐.docx
《电子秤与计算机通讯Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《电子秤与计算机通讯Word文档下载推荐.docx(11页珍藏版)》请在冰豆网上搜索。
偶数奇偶校验;
●通讯方式采用主从方式的查询-响应机制;
●串行口:
COM1;
●主机通讯板卡PLC--745B地址:
ComPort=0x3e8;
●程序内部寄存器端口地址分配及设置:
端口地址
条件
寄存器名称及作用
程序参数设定值
ComPort
DLAB=0
写入发送保持器
读出接收缓冲器
DLAB=1
低字节除数锁存器LSB
0x0c
ComPort+1
高字节除数锁存器MSB
0x00
中断允许寄存器
ComPort+2
—
FIFO控制寄存器
0xc9
ComPort+3
线路控制寄存器
0x1a
ComPort+4
MODEM控制寄存器
ComPort+5
线路状态寄存器
ComPort+6
MODEM状态寄存器
ComPort+7
临时数据寄存器
以下是对上表涉及到的寄存器控制字进行详细介绍:
一、选择波特率:
选择波特率,除数锁存器的值必须在主机通讯板卡PLC--745B初始化时预置,因此须将线路控制器(ComPort+3)的最高位(DLAB)置1,然后分别写入两个8位的除数锁存器(即低8位锁存器ComPort和高8位锁存器ComPort+1)。
具体数据见下表:
波特率
除数
当DLAB=1时
备注
ComPort(低位)
ComPort+1(高位)
50
2304
0x90
75
1536
0x06
110
1047
0x17
0x04
150
768
0x03
300
384
0x18
0x01
600
192
0xc0
1200
96
0x60
1800
64
0x40
2000
58
0x3A
2400
48
0x30
3600
32
0x20
4800
24
9600
12
0x0C
程序选择项
56000
2
0x02
115200
1
二、中断允许寄存器
该寄存器的D0~D3位表示主机通讯板卡PLC--745B的4级中断是否被允许,某位为1,则表示该级的中断被允许,为0,则表示该级的中断被禁止。
因本文所举实例采用的通讯方式是主从方式的查询-响应机制,所有中断均被禁止。
写入中断允许寄存器的控制字(ComPort+1在DLAB=0时):
三、FIFO控制寄存器(FCR)
写入FIFO控制寄存器的控制字(ComPort+2):
四、通讯线路控制寄存器
因通讯约定:
波特率9600;
数据位7;
故写入通讯线路控制寄存器的控制字:
(ComPort+3):
●电子秤(LYNX)选用8142模式
1.调用电子秤功能码E(即:
采集现场秤取的物料净重);
2.主机发送命令:
<
02>
32>
55>
45>
0D>
(<
STX>
2UF<
CR>
);
3.LYNX回答:
DataField>
;
LYNX回答数据格式介绍
STX
Address
Direction
Function
Datafield
CR
CHK
1#秤参数
以下是对LYNX回答的数据格式参数设置说明:
:
ASCII起始字符(02H);
Address>
LNYX仪表的地址(ASCII2~9见表1);
1#电子秤仪表的地址选择Hex:
ASCII:
2;
Direction>
数据传输方向“U”--<
、“D”--<
44>
“U”--主机通过PCL-745B向LYNX请求数据,LYNX根据请求命令发送数据
“D”--主机通过PCL-745B向LYNX发送数据
Function>
电子秤功能码(净重功能码E;
Hex:
传输的数据(7个字符,为净重数据);
<
ASCII回车符(0DH);
CHK>
可选的校验和;
软件编程
#include<
stdio.h>
conio.h>
math.h>
dos.h>
#defineTIME_OUT500
main()
{
intc,i,j;
staticintflag;
longinttimeout;
staticintComPort=0x3e8;
staticcharrec[40];
staticcharcmd[5]={0x02,0x32,0x55,0x45,0x0d};
floattt;
charbuf[8];
l1:
if(kbhit()!
=0)
{
c=getchar();
if(c=='
n'
||c==’N’)exit
(1);
y'
||c==’Y’)
{
/*对PLC-745B通讯卡初始化*/
outp(ComPort+2,0xc9);
/*enableFIFO*/
outp(ComPort+3,0x80);
/*DLAB=1*/
outp(ComPort,0x0c);
outp(ComPort+1,0x00);
/*bps=9600*/
outp(ComPort+3,0x1A);
/*data=7;
stop=1;
parity*/
outp(ComPort+1,0x00);
/*disableinterrupt*/
/*主机向LYNX请求数据*/
j=0;
flag=1;
outportb(ComPort+4,3);
while(flag)
outportb(ComPort,cmd[j]);
if(cmd[j]==0x0d)flag=0;
j++;
}
/*接受LYNX根据请求命令发送的净重数据*/
outportb(ComPort+4,1);
timeout=TIME_OUT;
while(flag)
inportb(ComPort+5);
if((inportb(ComPort+5)&
1)!
=0x00)
rec[j]=inportb(ComPort);
if(rec[j]==0x0d){rec[j+1]='
\0'
;
flag=0;
}
j++;
else
timeout--;
if(timeout==0)flag=0;
/*将采集的净重字符数据转化为可读十进制数据*/
i=0;
while(rec[i]!
=0x0d)i++;
if(i>
10)
buf[0]=rec[i-4];
buf[1]=rec[i-3];
buf[2]=rec[i-2];
buf[3]=rec[i-1];
tt=atof(buf)/10;
if(0<
tt<
1000)
clrscr();
gotoxy(25,1);
cputs(”电子秤与计算机通讯调试程序”);
gotoxy(1,2);
printf("
电子秤重量=%4.1fkg\n"
tt);
gotol1;
}_
Lynx串行通讯接口的设定
在执行所编译的运行程序之前,还需进入Lynx串行通讯接口,对电子秤串口通讯参数进行以下设定:
●选择串行接口,首先进入参数设定,显示EnterSetup用SELECT键选择直至显示Serial,I/F,按ENTER键。
●接口参数设置,显示PortConfg,按ENTER键。
●选择串行口,显示Port用SELECT键选COM1,按ENTER键。
●串行口参数,显示Parameter,按ENTER键开始设置:
1.选择串行口波特率,显示Baud,按ENTER键,用SELECT键选择直至显示BAUD?
9600。
2.选择数据位,显示DataBits,按ENTER键,用SELECT键选择直至显示DataBits?
7
3.选择校验位,显示Parity,按ENTER键,用SELECT键选择直至显示ParEVEN
4.选择握手信号,显示FlowCtrl,按ENTER键,用SELECT键选择直至显示XON/XOFF?
N
5.选择校验和,显示CheckSun,用SELECT键选择直至显示ChkSunN?
●设置连接方式,显示CONNECTION,按ENTER键,显示Output,
1.选择计算机通讯方式,按ENTER键,用SELECT键选择直至显示Host(),
2.选择8142模式,按ENTER键,用SELECT键选择直至显示Host8142
3.选择电子秤的地址,显示Address,按ENTER键,用SELECT键选择直至显示Address?
2(设置为第一台电子秤地址)
储存设定后,执行所编译生成的运行程序,每按动一次键盘字母键“Y”或“y”,即可在计算机显示屏显示一次当前电子秤所采集的净重值。
电子秤与计算机通讯调试程序
电子秤重量=xxx.xkg
通过以上步骤便能实现计算机对电子秤重量数据的实时采集,并可充分发挥计算机强大的数据处理功能和控制处理手段来完成实际工作中的各种复杂任务。
扩展功能
如需采集皮重或毛重,仅需修改程序中电子秤功能码,即可实现。
皮重:
staticcharcmd[6]={0x02,0x32,0x55,0x44,0x0d,0};
毛重:
staticcharcmd[6]={0x02,0x32,0x55,0x43,0x0d,0};
如是多台电子秤通讯,需采集第2台或第3台秤的净重数据,仅需修改程序中电子秤地址码,即可实现。
第二台:
cmd[6]={0x02,0x33,0x55,0x45,0x0d};
第三台:
cmd[6]={0x02,0x34,0x55,0x45,0x0d};
同时在第二台或第三台Lynx电子秤串口通讯参数设置中进入选择电子秤的地址,当显示出address,按ENTER键,用SELECT键选择直至显示第二台电子秤的地址:
Address?
3或第三台电子秤的地址:
4,其它各项参数设置均与第一台完全相同。
在实际工作中,计算机与LNYX仪表通讯最多可同时并联连接8台,LNYX仪表的地址从ASCII2~9,相互对应地址关系如下:
表1
电子秤号
电子秤地址
ASCII
0x32
5
0x36
6
0x33
3
0x37
0x34
4
0x38
8
0x35
0x39
9
实际应用
25000吨/年色漆车间是我公司99年开始自行设计开发,2000年投产使用的一个工程项目,该车间的色漆工段配料采用电子秤计量与计算机通讯相结合的方式,充分发挥计算机通讯、管理、自动测控技术,实现车间配方投料、生产过程的全自动化控制,不但缩短配料时间,提高配料精度,扩大生产能力,减少环境污染,降低各类物料及能源的无形消耗,使生产质量、效率、环保得到保障,而且具备配料过程故障应急处理功能、系统检测功能和配料物耗自动统计、生产运行记录自动存储、打印、……等等管理、维护功能,充分利用计算机强大图形处理技术功能,动态地在控制室大屏幕显示器实时显示生产现场的各个工艺参数、模拟显示整个车间设备生产运行状态,确保各工段严格按照工艺要求生产,极大提高车间产品质量的合格率、生产安全的可靠性、控制管理的科学性,使该车间不仅能够满足各类高、中、底档油漆生产的自动化控制与管理,而且具备的可扩展性更能适应今后市场对产品变化的要求。
本文所举实例,是我在开发该项目过程中电子秤计量与计算机通讯的调试程序,后移植到应用程序。
在实际工作应用中,从投产连续运行至今,生产配料合格率达100%,数据采集快捷、准确,性能稳定、可靠。
结束语
随着当前各行业计算机自动化控制的日益普及,组态软件、电子衡器的广泛应用,因许多比较流行的工业控制组态软件虽都配有设备自动连接向导,支持多种现场总线、PLC、智能仪表、采集板、智能模块、变频器等等,但大都没有与电子秤通讯的驱动程序。
而对以上所列程序稍加修改便可作为组态软件中的一个采集电子秤数据的通讯函数。
参考文献
1、ADVANTECHPCL-745BPC-LabcardseriesUser'
sManual
2、TOLEDOLynx工业称重控制终端技术手册
该篇论文
发表于《工业计量》总第80期
收录《第四届全国称重技术研讨会论文集》
入选《中国当代思想宝库》第四辑(科技篇)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 电子秤 计算机 通讯