推荐厂家
暂无
暂无
基于单片机与PLC通信的海量数据存储技术设计文档一、 选型说明:这个说明是查阅资料后编写的,如有相关意见可以修改。整个需求分三部分:1. 是利用现有的成熟的PLC技术,对各设备的监控点数据进行采集;2. 再使用单片机技术,对PLC采集后的数据进行读取,并按照一定的格式存储在存储设备中,存储设备可以是U盘,存储卡等;3. 使用读卡设备将存储的数据读出,并导入普通PC中,对读取数据进行分析。二、 基本组成图:http://www.dataie.com/admin/UploadFiles/2011729164711303.jpg图1 总框图三、 PLC数据采集:采用成熟的PLC技术,不需开发,使用西门子S7-200系列。S7-200 PLC是串行通讯方式最为丰富的小型PLC,支持多种通信协议,如点对点接口协议(PPI协议)、多点接口协议(MPI协议)和PROFIBUS协议以及自由通信协议等。其中自由通信协议又叫用户定义协议,利用自由端口模式,可以实现用户定义的通信协议,连接多种智能设备,使用起来非常方便,在第三方工程接入中取得了巨大的成功。四、 单片机数据存储此部分为整个技术的重点之一,他要完成的主要功能为,从PLC采集数据,并将数据按预先规定格式写入存储设备中,存储设备可设计成存储卡,U盘之类的。以下为我所查资料的一些设想,只作为参考,如可行也可以作为使用。1、 单片机与PLC通讯单片机选用MCS51,MCS-51的串行口与MAX485芯片相接,然后与S7-200 PLC的RS-485口进行通讯,如图1所示:http://www.dataie.com/admin/UploadFiles/2011729164740666.jpg图1 MCS-51单片机与S7-200的硬件接线图在自由端口模式下,PLC的串行通信接口由用户来控制,通过梯形图程序以及和单片机的汇编语言进行配合,来使用完成中断、字符接收中断、发送完成中断等,通信协议由用户完全控制。这时单片机处于主机状态,由单片机主动发送握手信号,PLC接到信号后被动反馈信息即可。a) 通信协议设计定义根据经验和有关参考资料,定义协议结构和参数。(1)通信波特率为9.6kbps,无校验,8个数据位,1个可编程位,1位起始位,1位停止位。(2)定义通信协议的数据流结构的格式为起始码、命令码、元件首址、字节数、数据块、BCC校验码和结束码。● 起始码:表示单片机与PLC开始发送数据,是数据流第一个字符,告诉PLC开始进行通信了,可以用00H表示● 命令码:表示单片机对PLC的各种操作: 40H:读取目标元件 I、Q、V、M、SM、L、T、C等的数据或状态; 41H:修改目标元件 I、Q、V、M、SM、L、T、C等的数据或状态; 42H:强制目标单元为ON; 43H:强制目标单元为OFF;● 元件首址:表示PLC内部的元件类型以及寄存器的地址(但不能表示一个位地址)。前两个字节表示寄存器类型,后两个字节表示寄存器号。00 00(H):I寄存器区 01 00(H):Q寄存器区。02 00(H):M寄存器区 08 00(H):V寄存器区;● 字节数:从元件首地址起,读取或写入PLC元件的数据个数数据块:准备读取或者写入PLC的数据或状态;● BCC校验码:在传输过程中,指令有可能受到任何的干扰而使原来的数据信号发生扭曲,此时的指令当然是错误的,为了侦测指令在传输过程中发生的错误,接收方必须对指令作进一步的确认工作,以防止错误的指令被执行,最简单的方法就是使用校验码。BCC校验码的方法就是将要传送的字符串的ASCII码以字节为单位作异或和,并将此异或和作为指令的一部分传送出去;同样地,接收方在接到指令后,以相同的方式对接收到的字符串作异或和,并与传送方所送过来的值作对比,若其值相等,则代表接收到的指令是正确的,反之则是错误的● 结束码:结束字符标志着指令的结束,在本例中被定义为FFH,不同的PLC从站可以定义不同的结束字符以接收针对该PLC的指令。b) 通信程序的实现(1)单片机端程序的实现。单片机在主程序中初始化,采用串行口工作方式3,波特率为9.6kbps,采用单片机作为主机,向PLC进行呼叫,定期读取数据或者写入数据,其程序流程图参见图2。 http://www.dataie.com/admin/UploadFiles/201172916488287.jpg图2 单片机端通讯程序流程图(2)PLC端程序流程图的实现。PLC端作为从机,采用梯形图或者STL编程,主要是先设置通讯协议,然后按照协议把采集到的数据进行处理,再发送给主机单片机,其具体的程序流程图如图3所示。http://www.dataie.com/admin/UploadFiles/2011729164842930.jpg图3 PLC端通讯程序流程图2、 单片机数据存储实现采用西安达泰电子的单片机读写U盘的模块 USB118AD,接线图如图4:http://www.dataie.com/admin/UploadFiles/201172916493469.jpg图4 USB118接线图说明:采用USB118AD模块直接连U盘。具体接口方式需查USB118AD相关资料。五、 数据软件分析通过U盘或其它存储设备,将数据读入电脑软件中,电脑软件根据实际业务需要设计相应的算法,对数据进行分析,以数据报表,图表等方式展现结果。
水质监测用那种在线的[url=https://www.hach.com.cn/product/orbisphere410]智能数字控制器[/url]连接电极,监测数据是能存储到控制器然后通过u盘给导出来吧?这种控制器,可以操作存储数据的存储次数和间隔嘛?比如我想一个小时存储几次之类的。
在水文监测系统中海量数据存储方案的典型应用应用背景 随着我国经济社会的发展,对水文信息不断提出新要求,水文观测项目和内容不断增加。在水文监测系统中,常常需要对众多的水位点进行监测,大部分监测数据需要实时存储,后端服务器进行处理。由于监测点分散,分布范围广,而且大多设置在环境较恶劣的地区。通过便携式RS232/485数据存储系统进行数据存储,成为水文部门选择的通信手段之一。污染源监测设备可将采集到的污染数据实时存储在SD/TF卡中,方便随时提取送到水文监测部门,实现对排污单位或个人的及时管理,可以大大提高水文部门的工作效率。 方案介绍系统构成及基本工作原理 随着高性能嵌入式微处理器价格的逐渐降低以及SD/TF卡存储容量的不断提高,采用以高性能32位工业级ARM微处理器为系统核心结合CPLD时序控制,嵌入FAT32文件系统,通过大容量存储卡以及USB数据拷贝功能,实现高性能、低功耗、低成本、小体积的海量数据存储及拷贝,具有无可比拟的优势。图1为便携式RS232/485数据存储系统的基本结构: 在该系统中,高性能32位工业级ARM微处理器和大容量内存卡为系统核心,随着科技技术的不断发展,目前已经很容易在市场上买到几十G的SD/TF卡,可以实现大容量的存储系统。为实现系统高可靠性、高效率的工作,必须采用基于ARM架构的高性能32位嵌入式微处理器作为系统的管理核心,通过与高效的嵌入式操作系统相结合,采用独特的动态内存分配算法,以此管理文件系统对内存的消耗和释放,提高数据的传输效率,避免数据丢失,实现实时数据的可靠存储。SD/TF卡与ARM接口软件设计:a首先初始化SD/TF卡、检查状态、扇区读写等基本操作。文件系统层按照PC文件系统要求设计,如FAT表、文件目录表等兼容PC机的文件管理系统,从而能够大大简化后端数据的分析和处理。文件操作层包括文件的建立、读写、删除等。b 当检测到有串口数据,系统自动在SD/TF卡上创建一个事先定义好的文件夹,目录下生成一个存储数据文件,进行实时数据存储。文件夹名称可通过配置软件自定义命名,例如2011年的数据,文件夹名称可以定义为20111001;数据存储文件为.TXT文件,系统自动创建,自动编号,不重复覆盖,便于文件管理。c由于数据采集系统的限制和具体环境的要求,便携式RS232/485数据存储必需适合长期无人值守、速度快、通用性好。为了能够长期进行数据存储除了采用更大容量的SD/TF卡外,如果几G甚至几十G的数据同时存储在同一个文件中,这样大量的数据后端分析和处理必定会给我们造成巨大的麻烦,因此要求便携式数据存储的FAT32文件系统的处理更加完善、更加智能化。这就需要探索一种更好的文件管理方式,经过多次的实验与尝试,采用定时创建数据存储文件进行存储,有利于对数据进行更有效的管理,更好的分析处理。例如:假定用户通过配置软件设置间隔24个小时即一天(根据用户设备具体的存储数据量大小情况决定时间)创建一个数据储存文件,那么N天后,文件夹20111001下将自动创建有N个TXT文件分别为[/fon