dataidz123
如果 那么 也许 就会 好一点 www.dataie.com
级别: 正式会员
精华主题: 0
发帖数量: 92 个
工控威望: 66 点
下载积分: 3273 分
在线时间: 22(小时)
注册时间: 2013-04-28
最后登录: 2023-11-06
查看dataidz123的 主题 / 回贴
楼主  发表于: 2013-05-03 17:42
图片:
基于单片机与PLC通信的海量数据存储
技术设计文档
一、 选型说明:
这个说明是查阅资料后编写的,如有相关意见可以修改。
整个需求分三部分:
1. 是利用现有的成熟的PLC技术,对各设备的监控点数据进行采集;
2. 再使用单片机技术,对PLC采集后的数据进行读取,并按照一定的格式存储在存储设备中,存储设备可以是U盘,存储卡等;
3. 使用读卡设备将存储的数据读出,并导入普通PC中,对读取数据进行分析。
二、 基本组成图:

图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所示:

图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[2],波特率为9.6kbps,采用单片机作为主机,向PLC进行呼叫,定期读取数据或者写入数据,其程序流程图参见图2。

图2 单片机端通讯程序流程图
(2)PLC端程序流程图的实现。PLC端作为从机,采用梯形图或者STL编程,主要是先设置通讯协议,然后按照协议把采集到的数据进行处理,再发送给主机单片机,其具体的程序流程图如图3所示。

图3 PLC端通讯程序流程图
2、 单片机数据存储实现
采用西安达泰电子的单片机读写U盘的模块 USB118AD,接线图如图4:
 

chenpingyg
机械是柱石,电气是灵魂.
级别: VIP会员
精华主题: 0
发帖数量: 1105 个
工控威望: 6705 点
下载积分: 100 分
在线时间: 603(小时)
注册时间: 2007-01-25
最后登录: 2017-04-03
查看chenpingyg的 主题 / 回贴
1楼  发表于: 2013-05-04 13:57
不错呀,
自己的事情自己做.
潇湘风竹
级别: 探索解密
精华主题: 0
发帖数量: 59 个
工控威望: 185 点
下载积分: 5840 分
在线时间: 31(小时)
注册时间: 2012-10-29
最后登录: 2023-05-21
查看潇湘风竹的 主题 / 回贴
2楼  发表于: 2013-05-04 16:45
牛逼!
shuangxi
级别: 探索解密
精华主题: 0
发帖数量: 27 个
工控威望: 159 点
下载积分: 2687 分
在线时间: 43(小时)
注册时间: 2013-05-01
最后登录: 2024-03-31
查看shuangxi的 主题 / 回贴
3楼  发表于: 2013-06-15 21:50
不错呀,
lzzqh8
级别: 略有小成
精华主题: 0
发帖数量: 264 个
工控威望: 429 点
下载积分: 69389 分
在线时间: 260(小时)
注册时间: 2011-05-25
最后登录: 2024-04-14
查看lzzqh8的 主题 / 回贴
4楼  发表于: 2013-06-15 21:53
谢谢,学习了。
xtihee
级别: 论坛先锋
精华主题: 0
发帖数量: 426 个
工控威望: 1148 点
下载积分: 664 分
在线时间: 397(小时)
注册时间: 2011-12-18
最后登录: 2023-12-11
查看xtihee的 主题 / 回贴
5楼  发表于: 2013-06-16 09:12
高手,
huoshi
为所当为
级别: 网络英雄

精华主题: 0
发帖数量: 2588 个
工控威望: 20854 点
下载积分: 13648 分
在线时间: 2693(小时)
注册时间: 2010-12-27
最后登录: 2024-04-29
查看huoshi的 主题 / 回贴
6楼  发表于: 2013-06-16 09:23
不错头一次见识
dmh
让理想和现实一起飞
级别: 工控侠客

精华主题: 0
发帖数量: 1545 个
工控威望: 4541 点
下载积分: 7504 分
在线时间: 664(小时)
注册时间: 2008-12-27
最后登录: 2024-04-10
查看dmh的 主题 / 回贴
7楼  发表于: 2013-06-16 09:28
是好东西,如果可以使用更多的PLC会更好。
[ 此帖被dmh在2013-06-16 09:47重新编辑 ]
不断向前
weilinyi
级别: 工控侠客
精华主题: 0
发帖数量: 441 个
工控威望: 4329 点
下载积分: 3223 分
在线时间: 545(小时)
注册时间: 2009-11-21
最后登录: 2018-08-27
查看weilinyi的 主题 / 回贴
8楼  发表于: 2013-06-16 10:09
这可以多远啊,
tkggtdkjpl
工欲善其事,必先利其器!
级别: 网络英雄

精华主题: 1 篇
发帖数量: 3413 个
工控威望: 20949 点
下载积分: 20758 分
在线时间: 1702(小时)
注册时间: 2010-01-03
最后登录: 2024-05-02
查看tkggtdkjpl的 主题 / 回贴
9楼  发表于: 2013-06-17 08:11
不错的方案!
自动化单机,生产线,项目编程调试!
threemissyou
threemissyou
级别: 探索解密
精华主题: 0
发帖数量: 63 个
工控威望: 198 点
下载积分: 2275 分
在线时间: 55(小时)
注册时间: 2011-06-12
最后登录: 2024-04-18
查看threemissyou的 主题 / 回贴
10楼  发表于: 2013-06-17 19:10
pc事实监控就可以了,还要单片机中转一下干什么呢?