当前位置:首页 > 物联网 > 《物联网技术》杂志
[导读]摘要:蔬菜质量可追溯系统是一种采用C/S和B/S混合模式的农产品质量追溯系统。该系统采用物联网技术对蔬菜种植 及加工过程中的所有生产数据、检疫数据、加工数据、销售数据进行记录,最终为生产过程控制、生产管理、食品溯源服务。 因此,可在对企业进行实地调研的基础上,应用此方法开发一套蔬菜质量安全可追溯系统。文章主要研究了其中的电子秤数 据通信与同步发送模块的实现方法。

引言

蔬菜是我们日常生活中必不可少的食物之一,蔬菜质量是 否安全直接影响我们的健康。本文在调研蔬菜企业实际业务 流程的基础上,对蔬菜种植及加工过程中记录所有生产数据、 检疫数据、加工数据、销售数据等数据进行实时跟踪记录。

溯源系统的“销售数据模块”中的蔬菜称重由串口电子秤 来完成,我们的需求是需要串口电子秤联入网络,蔬菜称重时, 电子秤通过串口返回数据给电脑,并将数据通过Socket发送 给网络上的服务器并记录下来。

实际上常用的电子秤与电脑交互采用两种方式。一种是 连续传送方式,电脑不用发送数据给电子秤,电子秤每隔一 段时间将“重量”发给电脑。还有一种是指令传输方式,在这 种情况下,电子秤只在输入指令的情况下,才会向电脑发送数 据。不过这种方式有个最大的缺点,在输入的指令错误的情 况下,不会返回任何信息。我们测试它的连续方式。下面先进行电子秤的设置。

1电子秤设置

先通过调试说明设定波特率,程序中和机器中必须设置 一样的波特率才能正确地收发数据。其次设置“通信协议”。 按照电子秤的说明进行配置,下面我们就进行配置。

1.1系统设置

开机进入称重状态,同时按数字键“1”和“总计”键, 进入设定状态。

屏幕显示“CLOSE”,按“去皮”键选择,“CLOSE”为 关闭串口,“SER”为打开串口。按“累清/设定”键确认,进 入下一步。

屏幕显示“B ****”,按“去皮”键选择“波特率”,按“累 清/设定”键确认,进入下一步。

屏幕显示“P **”,按“去皮”键选择“通讯协议”,按“累 清/设定”键确认并进入下一步。

1.2电子秤协议选择列表

本系统中的电子秤协议如表1所列。

表1电子秤协议

编号
名称
发送方式
说明
1
协议A
连续发送
含地址、单价、金额
2
协议B
连续发送
仅重量
3
协议C
连续发送
仅重量
4
协议D
连续发送
仅重量
5
协议D
稳定发送
仅重量
6
协议E
连续发送
仅重量
7
协议E
稳定发送
仅重量
8
协议F
连续发送
含单价、金额
9
协议F
稳定发送
含单价、金额

1.3电子秤通讯协议数据格式

8位数据位,1位停止位,无校验位。我们选择系统默认 的协议D进行设计。字节1 (ASCII):=起始位,字节2〜8 (ASCII):按先低后高的顺序发送6位重量数据,最后发送符 号位,其中表示负数,空格表示正数,不满8个数据则 用空格填满。

2电脑串口设置

用鼠标右键单击“我的电脑”,在弹出的菜单中选择“属 性”,然后选择“硬件”,“备管理器”,在弹出的窗口数型目录 中选择“通信端口(COM1)”,弹出的窗口如图1所示。对“端 口参数”进行设置,一定要和自己所选取的电子秤匹配。波特 率9 600、8位数据位、1位停止位、无校验位,图1所示是 系统通信端口 (COM1)的属性设置界面。

溯源系统电子秤编程调试

3程序设计

C/S 程序开发使用 Visual Studio 2010, Visual Studio 2010可简化在各种平台上创建、调试和开发应用程序的过程, 是供开发人员执行基本开发任务的重要工具。它自带对测试驱 动开发的集成支持及调试工具,以帮助确保提供高质量的解 决方案。

3.1界面设计

本系统使用Visual Studio 2010中的SerialPort控件访问

串口。把电子秤配置好后,然后开始编程序。在项目中,电子 秤收发数据的子界面如图2所示,其主要任务就是把电子秤 称重时的重量信息实时地传递给窗体,在重量文本框中显示 出来。至于Socket在另外的模块来实现,这里不讨论。

图2电子秤称重模块

3.2串口配置程序

本系统选择串口通信口为COM1,设置串口通信波特率 为9 600和电子秤,设置串口通信数据位,设置串口通信停止 位1位,设置串口通信无校验。其重点程序如下:

Serialport_C.PortName = "COM1":

Serialport_C.BaudRate = 9600 ;

Serialport_C .DataBits = 8 ;

Serialport_C.StopBits = System.IO.Ports.StopBits.One ;

Serialport_C.Parity = System.IO.Ports.Parity.None ;

使用Visual Studio中的Serialport控件初始化,可设置 缓存并判断串口是否打开状态,如果没有打开则打开串口。程 序如下:

Serialport_C.ReadBufferSize = 1024 ;

if (Serialport_C.IsOpen)

{

MessageBox.Show(“ 串 口 已打开! ”,“提示”, MessageBoxButtons.OK,

MessageBoxIcon.Information);

}

else

{

Serialport_C.Open();

}

3.3数据的读取与显示

接收缓冲读取全数据,设置OnComm事件的字节长度, 清空缓冲区,定时器启动。程序如下:

Serialport_C.ReadExisting();

Serialport_C.ReceivedBytesThreshold = 1;

Serialport_C.DiscardInBuffer();

timer1.Start();

串口数据的检测读取:就是从Serialport控件的缓存中读 取数据位,如果有数据,则读取数据并存入一个数据组中。

int bytes = Serialport_C.BytesToRead ;

byte[] buffer = new byte[bytes] ;

if (bytes == 0)

{

return ;

}

Serialport_C.Read(buffer,

0,

bytes) ;

把取出数组中的数据转换为字符型数据并连接在一起准

备输出 :

string srt = string.Empty ;

string str = string.Empty ;

for (int Index = 0 ;

Index < buffer.Length ;

Index++)

{

str += ((Char)(buffer[Index])).ToString() ;

}

在程序界面上实现字符串的翻转显示 :

String output = string.Empty ;

for ( int i = str.Length ;

i > 1 ;

i-- )

{

output += str.Substring(i - 1,

1) ;

}

textBox1.Text = output ;

}

把取出数组中的数据转换为字符型数据并连接在一起准

4结语

至此,就可以完成“电子秤称重数据”的动态读取了。在 测试过程中也不是一帆风顺的,首先电子秤和电脑串口的连接 要保证物理通路,在这个基础上才能进行下一步的工作;其 次要正确配置好电子秤,波特率要一定要保证一致;还要选 择适当的传输协议,如果这个不正确,后面的程序就不用写了; 最后还要写出对应的读取程序。要正确对返回的ASCII码进行解码,这样才能得到正确的结果,当然,这里只是针对电 子秤的调试和数据处理过程,网络中的Socket发送在另外模 块实现。

20211117_6193d627af724__溯源系统电子秤编程调试

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

以下内容中,小编将对波特率的相关内容进行着重介绍和阐述,希望本文能帮您增进对波特率的了解,和小编一起来看看吧。

关键字: 波特率 码元

波特率9600的传输速率为每秒9600个比特,而波特率115200的传输速率为每秒115200个比特,因此,115200的传输速度比9600快得多。

关键字: 波特率 传输速度 MCU

比特率:在数字信道中,比特率是数字信号的传输速率,它用单位时间内传输的二进制代码的有效位(bit)数来表示,其单位为每秒比特数bit/s(bps)。

关键字: 波特率 比特率 信道

在通信领域中,波特率与数据传输速率是两个关键的性能指标。波特率通常用于描述模拟通信系统中的信号调制速率,而数据传输速率则用于描述数字通信系统中的数据传输效率。了解波特率与数据传输速率的关系对于正确选择和配置通信系统至关重...

关键字: 波特率 数据传输速率 模拟通信

串行通信是一种通信方式,其中数据按顺序一位一位地传输。与并行通信不同,串行通信在一条线路上传输数据,因此需要较少的数据线。串行通信主要用于长距离通信,因为它的功耗低、成本低、简单易实现。

关键字: 串行通信 波特率

上位机串口通信是指在上位机(通常是计算机或微控制器)与外部设备之间通过串行通信协议进行数据传输和通信的过程。在串口通信中,数据以位为单位按顺序传送,通常使用一个或两个物理线路(通常是两条线)来实现数据的发送和接收。

关键字: 上位机 串口通信

串口通信(Serial Communication)是一种常用的数据传输方式,它通过串行数据线逐位传输数据,具有成本低、简单易用、可靠性高等优点。在工业控制、通信设备、嵌入式系统等领域得到广泛应用。

关键字: 串口通信 嵌入式系统

串口通信是一种常见的通信方式,用于在不同设备之间传输数据。它通过串行数据线(通常是一对TXD和RXD线)在设备之间进行通信。串口通信具有简单、可靠、成本低等优点,因此在工业控制、嵌入式系统、数据采集等领域得到广泛应用。

关键字: 串口通信 串口编程

串口通信是一种常见的通信方式,主要应用于计算机和其他设备之间的数据传输。它的主要原理是利用串行数据传输的方式,将数据一位一位地按顺序传输,而不是同时传输所有的数据。下面我们来看看串口通信的主要原理以及如何提高其传输速度。

关键字: 串口通信 串口速度

串口通信是一种常见的通信方式,它通过串行方式传输数据。串口通信的原理相对简单,主要涉及到数据位的传输和接收。在串口通信中,数据按照一定的波特率(baud rate)逐位传输。通常,一个字节的数据由8位组成,所以传输一个字...

关键字: 串口通信 波特率
关闭
关闭