PDA高速数据采集分析系统 ─ 详尽解析质量管理及工业大数据来源 |
||||||
Modbus是由Modicon(现为施耐德电气公司)在1979年发明,是全球第一个真正用于工业现场的总线协议。施耐德-莫迪康984/Quantum,GE Funce 9070/9030/PACSystems等系列PLC支持Modbus相关协议。 Modbus网络是一个工业通信系统,由带智能终端的可编程序控制器和计算机通过公用线路或局部专用线路连接而成,其系统结构包括硬件、软件,可应用于各种数据采集和过程监控。 Modbus网络只有一个主机,所有通信都由他发出,网络可支持247个之多的远程从属控制器,但实际所支持的从机数要由所用通信设备决定,采用这个系统,各PC可以和中心主机交换信息而不影响各PC执行本身的控制任务。 为了更好地普及和推动Modbus在基于以太网上的分布式应用,目前施耐德公司已将Modbus协议的所有权移交给IDA(Interface for Distributed Automation,分布式自动化接口)组织,并成立了Modbus-IDA组织,为Modbus的发展奠定了基础,在中国Modbus已经成为国家标准GB/T19582-2008。 Modbus协议是应用于电子控制器上的一种通用语言,通过此协议,控制器相互之间、控制器经由网络(例如以太网)和其它设备之间可以通信,它已经成为一种通用工业标准,有了它,不同厂商生产的控制设备可以连成工业网络,进行集中监控。此协议定义了一个控制器能认识使用的消息结构,而不管它们是经过何种网络进行通信的。它描述了一个控制器请求访问其它设备的过程,如何回应来自其它设备的请求,以及怎样侦测错误并记录,它制定了消息域格局和内容的公共格式。 当在同一Modbus网络上通信时,此协议决定了每个控制器需要知道它们的设备地址,识别按地址发来的消息,决定要产生何种行动,如果需要回应,控制器将生成反馈信息并用Modbus协议发出,在其它网络上,包含了Modbus协议的消息转换为在此网络上使用的帧或包结构,这种转换也扩展了根据具体的网络解决节地址、路由路径及错误检测的方法。 此协议支持传统的RS-232、RS-422、RS-485和以太网设备,许多工业设备,包括PLC,DCS,智能仪表等都在使用Modbus协议作为他们之间的通信标准。 Modbus具有以下几个特点: (1)标准、开放,用户可以免费、放心地使用Modbus协议,不需要交纳许可证费,也不会侵犯知识产权,目前,支持Modbus的厂家超过400家,支持Modbus的产品超过600种。 (2)Modbus可以支持多种电气接口,如RS-232、RS-485等,还可以在各种介质上传送,如双绞线、光纤、无线等。 (3)Modbus的帧格式简单、紧凑,通俗易懂,用户使用容易,厂商开发简单。 Modbus在TCP/IP网络上的实现即为Modbus-Tcp,是一个开放性协议,IANA(Internet Assigned Numbers Authority 互联网编号分配机构)已为 Modbus协议指配TCP /
UDP 端口502。 Modbus协议是一个标准协议,IETF(The
Internet Engineering Task Force)国际互联网工程任务组织提议将Modbus协议作为因特网标准协议,是自动化领域中广泛使用的“实事”标准。 施耐德-莫迪康984/Quantum,GE Funce
9070/9030/PACSystems等系列PLC支持Modbus相关协议。 22.1 新建工程项目 以Quantum
PLC为例,编程工具选Unity Pro XL。 1、选择工具栏按钮“New Project”。 2、更换背板并组态各槽模块。 3、定义好CPU内存范围,PDA采集的数据不能超过它。 4、根据要采集的变量定义数据类型TPDA,10*REAL+16*BOOL+20*INT+32*BOOL+String1+String2+String3,1个WORD相当于16个BOOL。 定义变量pdaData:TPDA并分配首地址%mw2000。 5、新建一个任务和应用程序pda。 6、新建一个以太网并设置好IP地址。 22.2 与PLC联机 1、加载DriverPack.iso,运行\USB\Windows\disk1\setup.exe安装PLC USB驱动。 2、用USB线将PC和PLC的CPU连接起来。 3、PLC上电会自动检测到"PLC
USB Device",选择自动安装驱动,完成后如下图。 4、PLC->Standard Mode。 5、PLC->Set Address…选择用USB与PLC联机。 6、将项目下载后PLC的IP地址为192.168.0.211或192.168.0.210,每次PLC重启IP地址会在这两者间变化。 7、将在线工具设为以太网即可用以太网在线监控。 22.3 PDA服务器端配置 PDA服务器组态Config.csv如下,数据源类型为28S,注意字节交换,数字量在PLC中传到%MW寄存器便可与模拟量一起采集,否则需专门建一个连接采集数字量。 一个ModbusTcp帧最多采集250字节的数据,本方式一个连接可采集>250字节的数据,多个内存区要建立多个连接。建议将要采集的各种类型的所有数据集中到一个连续的%MW块中,一次性采集完,采样周期可到10ms。 FC3为Modbus功能码: FC1:%M (0x... memory area) read coil status FC2:%I (1x... memory area) read discrete input
status FC3:%MW(4x... memory area) read output/holding
register FC4:%IW(3x... memory area) read input register %MW1为Modbus寄存器起始地址,对应关系为: 0 -> %M1 -> 00001 -> %Q00001 0 -> %I1 -> 10001 -> %I00001 0 -> %MW1 -> 40001 -> %R00001 0 -> %IW1 -> 30001 -> %AI00001 PDA数据类型支持BIT、INT、DINT、WORD、DWORD、REAL,DOUBLE、CHAR(对应PLC的STRING)不支持BYTE型(1个寄存器为2bytes)。 FC1、FC2读开关量时,起始地址为1、9、17、25、33、41、49、57、65……。 22.4 混合采集REAL、BOOL、INT、STRING 采集10*REAL+16*BOOL+20*INT+32*BOOL+String1+String2+String3例子如下。 创建ST语言的pda程序,将要采集的数据赋值给相应的数组。 if pdaData.pdaReal[0]>3000.0 then
pdaData.pdaReal[0]:=-3000.0;end_if; pdaData.pdaReal[0]:=pdaData.pdaReal[0]+0.001; pdaData.pdaReal[1]:=sin(pdaData.pdaReal[0]); pdaData.pdaReal[2]:=cos(pdaData.pdaReal[0]); pdaData.pdaReal[3]:=3.0; pdaData.pdaReal[4]:=4.0; pdaData.pdaReal[5]:=5.0; pdaData.pdaReal[6]:=6.0; pdaData.pdaReal[7]:=7.0; pdaData.pdaReal[8]:=8.0; pdaData.pdaReal[9]:=9.0; pdaData.pdaBool16[0].0:=1; pdaData.pdaBool16[0].1:=0; pdaData.pdaBool16[0].2:=1; pdaData.pdaBool16[0].3:=1; pdaData.pdaBool16[0].4:=1; pdaData.pdaBool16[0].5:=0; pdaData.pdaBool16[0].6:=0; pdaData.pdaBool16[0].7:=0; pdaData.pdaBool16[0].8:=1; pdaData.pdaBool16[0].9:=1; pdaData.pdaBool16[0].10:=0; pdaData.pdaBool16[0].11:=0; pdaData.pdaBool16[0].12:=0; pdaData.pdaBool16[0].13:=0; pdaData.pdaBool16[0].14:=1; pdaData.pdaBool16[0].15:=1; pdaData.pdaInt[0]:=2000; pdaData.pdaInt[1]:=2001; pdaData.pdaInt[2]:=2002; pdaData.pdaInt[3]:=2003; pdaData.pdaInt[4]:=2004; pdaData.pdaInt[5]:=2005; pdaData.pdaInt[6]:=2006; pdaData.pdaInt[7]:=2007; pdaData.pdaInt[8]:=2008; pdaData.pdaInt[9]:=2009; pdaData.pdaInt[10]:=2010; pdaData.pdaInt[11]:=2011; pdaData.pdaInt[12]:=2012; pdaData.pdaInt[13]:=2013; pdaData.pdaInt[14]:=2014; pdaData.pdaInt[15]:=2015; pdaData.pdaInt[16]:=2016; pdaData.pdaInt[17]:=2017; pdaData.pdaInt[18]:=2018; pdaData.pdaInt[19]:=2019; pdaData.pdaBool32[0].0:=1; pdaData.pdaBool32[0].1:=1; pdaData.pdaBool32[0].2:=1; pdaData.pdaBool32[0].3:=0; pdaData.pdaBool32[0].4:=0; pdaData.pdaBool32[0].5:=0; pdaData.pdaBool32[0].6:=1; pdaData.pdaBool32[0].7:=1; pdaData.pdaBool32[0].8:=1; pdaData.pdaBool32[0].9:=1; pdaData.pdaBool32[0].10:=0; pdaData.pdaBool32[0].11:=0; pdaData.pdaBool32[0].12:=0; pdaData.pdaBool32[0].13:=0; pdaData.pdaBool32[0].14:=1; pdaData.pdaBool32[0].15:=1; pdaData.pdaBool32[1].0:=1; pdaData.pdaBool32[1].1:=1; pdaData.pdaBool32[1].2:=1; pdaData.pdaBool32[1].3:=0; pdaData.pdaBool32[1].4:=0; pdaData.pdaBool32[1].5:=0; pdaData.pdaBool32[1].6:=0; pdaData.pdaBool32[1].7:=0; pdaData.pdaBool32[1].8:=1; pdaData.pdaBool32[1].9:=1; pdaData.pdaBool32[1].10:=1; pdaData.pdaBool32[1].11:=1; pdaData.pdaBool32[1].12:=1; pdaData.pdaBool32[1].13:=1; pdaData.pdaBool32[1].14:=0; pdaData.pdaBool32[1].15:=0; pdaData.pdaString1:='a1234567890xxxxxxxxb'; pdaData.pdaString2:='cyyyyyyyyd'; pdaData.pdaString3:='ezzzzzzzzzzzzzzzzzzzzzzzzzzf'; PDA服务器中Config.csv组态如下: [1000,81CH,10.000ms,192.168.0.211,28S,Note,192.168.0.216,,,,FC3,%MW2000] No,
Name,Adr/note,Unit,Len,Offset
,Gain
,Type,ALM, CH1=, ,
, ,4 ,0.000000,1.000000,REAL,0 ,0.000,0.000,0.000,0.000,0 CH2=, ,
, ,4 ,0.000000,1.000000,REAL,0 ,0.000,0.000,0.000,0.000,0 CH3=, ,
, ,4 ,0.000000,1.000000,REAL,0 ,0.000,0.000,0.000,0.000,0 CH4=, ,
, ,4 ,0.000000,1.000000,REAL,0 ,0.000,0.000,0.000,0.000,0 CH5=, ,
, ,4 ,0.000000,1.000000,REAL,0 ,0.000,0.000,0.000,0.000,0 CH6=, ,
, ,4 ,0.000000,1.000000,REAL,0 ,0.000,0.000,0.000,0.000,0 CH7=, ,
, ,4 ,0.000000,1.000000,REAL,0 ,0.000,0.000,0.000,0.000,0 CH8=, ,
, ,4 ,0.000000,1.000000,REAL,0 ,0.000,0.000,0.000,0.000,0 CH9=, ,
, ,4 ,0.000000,1.000000,REAL,0 ,0.000,0.000,0.000,0.000,0 CH10=, ,
, ,4 ,0.000000,1.000000,REAL,0 ,0.000,0.000,0.000,0.000,0 CH11=, ,
, ,1 ,0.000000,1.000000,BIT ,0 ,0.000,0.000,0.000,0.000,0 CH12=, ,
, ,1 ,0.000000,1.000000,BIT ,0 ,0.000,0.000,0.000,0.000,0 CH13=, ,
, ,1 ,0.000000,1.000000,BIT ,0 ,0.000,0.000,0.000,0.000,0 CH14=, ,
, ,1 ,0.000000,1.000000,BIT ,0 ,0.000,0.000,0.000,0.000,0 CH15=, ,
, ,1 ,0.000000,1.000000,BIT ,0 ,0.000,0.000,0.000,0.000,0 CH16=, , , ,1 ,0.000000,1.000000,BIT ,0 ,0.000,0.000,0.000,0.000,0 CH17=, ,
, ,1 ,0.000000,1.000000,BIT ,0 ,0.000,0.000,0.000,0.000,0 CH18=, ,
, ,1 ,0.000000,1.000000,BIT ,0 ,0.000,0.000,0.000,0.000,0 CH19=, , , ,1 ,0.000000,1.000000,BIT ,0 ,0.000,0.000,0.000,0.000,0 CH20=, ,
, ,1 ,0.000000,1.000000,BIT ,0 ,0.000,0.000,0.000,0.000,0 CH21=, ,
, ,1 ,0.000000,1.000000,BIT ,0 ,0.000,0.000,0.000,0.000,0 CH22=, , , ,1 ,0.000000,1.000000,BIT ,0 ,0.000,0.000,0.000,0.000,0 CH23=, ,
, ,1 ,0.000000,1.000000,BIT ,0 ,0.000,0.000,0.000,0.000,0 CH24=, ,
, ,1 ,0.000000,1.000000,BIT ,0 ,0.000,0.000,0.000,0.000,0 CH25=, ,
, ,1 ,0.000000,1.000000,BIT ,0 ,0.000,0.000,0.000,0.000,0 CH26=, ,
, ,1 ,0.000000,1.000000,BIT ,0 ,0.000,0.000,0.000,0.000,0 CH27=, ,
, ,2 ,0.000000,1.000000,INT ,0 ,0.000,0.000,0.000,0.000,0 CH28=, ,
, ,2 ,0.000000,1.000000,INT ,0 ,0.000,0.000,0.000,0.000,0 CH29=, ,
, ,2 ,0.000000,1.000000,INT ,0 ,0.000,0.000,0.000,0.000,0 CH30=, ,
, ,2 ,0.000000,1.000000,INT ,0 ,0.000,0.000,0.000,0.000,0 CH31=, ,
, ,2 ,0.000000,1.000000,INT ,0 ,0.000,0.000,0.000,0.000,0 CH32=, ,
, ,2 ,0.000000,1.000000,INT ,0 ,0.000,0.000,0.000,0.000,0 CH33=, ,
, ,2 ,0.000000,1.000000,INT ,0 ,0.000,0.000,0.000,0.000,0 CH34=, ,
, ,2 ,0.000000,1.000000,INT ,0 ,0.000,0.000,0.000,0.000,0 CH35=, ,
, ,2 ,0.000000,1.000000,INT ,0 ,0.000,0.000,0.000,0.000,0 CH36=, ,
, ,2 ,0.000000,1.000000,INT ,0 ,0.000,0.000,0.000,0.000,0 CH37=, ,
, ,2 ,0.000000,1.000000,INT ,0 ,0.000,0.000,0.000,0.000,0 CH38=, ,
, ,2 ,0.000000,1.000000,INT ,0 ,0.000,0.000,0.000,0.000,0 CH39=, ,
, ,2 ,0.000000,1.000000,INT ,0 ,0.000,0.000,0.000,0.000,0 CH40=, , , ,2 ,0.000000,1.000000,INT ,0 ,0.000,0.000,0.000,0.000,0 CH41=, ,
, ,2 ,0.000000,1.000000,INT ,0 ,0.000,0.000,0.000,0.000,0 CH42=, ,
, ,2 ,0.000000,1.000000,INT ,0 ,0.000,0.000,0.000,0.000,0 CH43=, , , ,2 ,0.000000,1.000000,INT ,0 ,0.000,0.000,0.000,0.000,0 CH44=, ,
, ,2 ,0.000000,1.000000,INT ,0 ,0.000,0.000,0.000,0.000,0 CH45=, ,
, ,2 ,0.000000,1.000000,INT ,0 ,0.000,0.000,0.000,0.000,0 CH46=, , , ,2 ,0.000000,1.000000,INT ,0 ,0.000,0.000,0.000,0.000,0 CH47=, ,
, ,1 ,0.000000,1.000000,BIT ,0 ,0.000,0.000,0.000,0.000,0 CH48=, ,
, ,1 ,0.000000,1.000000,BIT ,0 ,0.000,0.000,0.000,0.000,0 CH49=, ,
, ,1 ,0.000000,1.000000,BIT ,0 ,0.000,0.000,0.000,0.000,0 CH50=, ,
, ,1 ,0.000000,1.000000,BIT ,0 ,0.000,0.000,0.000,0.000,0 CH51=, ,
, ,1 ,0.000000,1.000000,BIT ,0 ,0.000,0.000,0.000,0.000,0 CH52=, ,
, ,1 ,0.000000,1.000000,BIT ,0 ,0.000,0.000,0.000,0.000,0 CH53=, ,
, ,1 ,0.000000,1.000000,BIT ,0 ,0.000,0.000,0.000,0.000,0 CH54=, ,
, ,1 ,0.000000,1.000000,BIT ,0 ,0.000,0.000,0.000,0.000,0 CH55=, ,
, ,1 ,0.000000,1.000000,BIT ,0 ,0.000,0.000,0.000,0.000,0 CH56=, ,
, ,1 ,0.000000,1.000000,BIT ,0 ,0.000,0.000,0.000,0.000,0 CH57=, ,
, ,1 ,0.000000,1.000000,BIT ,0 ,0.000,0.000,0.000,0.000,0 CH58=, ,
, ,1 ,0.000000,1.000000,BIT ,0 ,0.000,0.000,0.000,0.000,0 CH59=, ,
, ,1 ,0.000000,1.000000,BIT ,0 ,0.000,0.000,0.000,0.000,0 CH60=, ,
, ,1 ,0.000000,1.000000,BIT ,0 ,0.000,0.000,0.000,0.000,0 CH61=, ,
, ,1 ,0.000000,1.000000,BIT ,0 ,0.000,0.000,0.000,0.000,0 CH62=, ,
, ,1 ,0.000000,1.000000,BIT ,0 ,0.000,0.000,0.000,0.000,0 CH63=, ,
, ,1 ,0.000000,1.000000,BIT ,0 ,0.000,0.000,0.000,0.000,0 CH64=, ,
, ,1 ,0.000000,1.000000,BIT ,0 ,0.000,0.000,0.000,0.000,0 CH65=, ,
, ,1 ,0.000000,1.000000,BIT ,0 ,0.000,0.000,0.000,0.000,0 CH66=, ,
, ,1 ,0.000000,1.000000,BIT ,0 ,0.000,0.000,0.000,0.000,0 CH67=, ,
, ,1 ,0.000000,1.000000,BIT ,0 ,0.000,0.000,0.000,0.000,0 CH68=, ,
, ,1 ,0.000000,1.000000,BIT ,0 ,0.000,0.000,0.000,0.000,0 CH69=, ,
, ,1 ,0.000000,1.000000,BIT ,0 ,0.000,0.000,0.000,0.000,0 CH70=, ,
, ,1 ,0.000000,1.000000,BIT ,0 ,0.000,0.000,0.000,0.000,0 CH71=, ,
, ,1 ,0.000000,1.000000,BIT ,0 ,0.000,0.000,0.000,0.000,0 CH72=, ,
, ,1 ,0.000000,1.000000,BIT ,0 ,0.000,0.000,0.000,0.000,0 CH73=, ,
, ,1 ,0.000000,1.000000,BIT ,0 ,0.000,0.000,0.000,0.000,0 CH74=, ,
, ,1 ,0.000000,1.000000,BIT ,0 ,0.000,0.000,0.000,0.000,0 CH75=, ,
, ,1 ,0.000000,1.000000,BIT ,0 ,0.000,0.000,0.000,0.000,0 CH76=, ,
, ,1 ,0.000000,1.000000,BIT ,0 ,0.000,0.000,0.000,0.000,0 CH77=, ,
, ,1 ,0.000000,1.000000,BIT ,0 ,0.000,0.000,0.000,0.000,0 CH78=, ,
, ,1 ,0.000000,1.000000,BIT ,0 ,0.000,0.000,0.000,0.000,0 CH79=, ,
, ,20
,0.000000,1.000000,CHAR,0
,0.000,0.000,0.000,0.000,0
CH80=, ,
, ,10
,0.000000,1.000000,CHAR,0
,0.000,0.000,0.000,0.000,0
CH81=, ,
, ,30
,0.000000,1.000000,CHAR,0
,0.000,0.000,0.000,0.000,0
GE PACSystems中要作Modbus地址映射。 |
||||||
|
||||||
设备测试 故障诊断 质量分析 |
毫秒级的数据采样 高效实时数据压缩 捕捉信号瞬时突变 |
|||||
友情链接 百度 腾讯 新浪 网易 搜狐 凤凰 淘宝 京东 中国自动化网 中国工控网 西门子 罗克韦尔 华军软件园 天空软件站 非凡软件站 多多软件站 携程 知乎 中国五矿 中冶集团 中冶赛迪 中冶南方 中冶京诚 中冶华天 中冶长天 中冶北方 中冶焦耐 中国宝武 宝信 宝钢 武钢 鞍钢 河钢 首钢 沙钢 山钢 涟钢 鄂ICP备2025092850号 版权所有©Copyright:2025-2035. 经纬铭月科技(武汉)有限公司 |
||||||
通讯协议开发 分析功能定制 数据接口开放 信创国产执念
PDAServer
PDAClient