发布于 2007-05-25 12:58:00
0楼
这个没做过,但我觉得这个问题有实用价值,比如用在录波上。
在PLC里的数据采集到是很简单,定时采集,用表格存放就可以了,不过我觉的难点是在上位机这一块。
这里面涉及几个方面的问题:
1、变量动态定义:
如果用组态软件做上位机软件,并且采用其支持的协议(指主从协议),由于PLC内的有效数据存放地址以及数量是动态变化的,则要求所定义的变量也要是动态可变的,这个好像无法实现。
2、通讯协议:
如果在PLC内只留一对或几对A-B数据存储单元,上位机变量不动态变化,只对应于这几个存储单元,那么上位机取走旧数据后,要通知PLC旧数据已被取走,则PLC再将新的数据放在该存储单元内,等待上位机取下一批数据。这就要求上位机和PLC的通讯协议要自定义,上位机和PLC的通讯程序都要自己编写。
3、数据库与曲线控件:
上位机取数后,存入数据库内,在这里时间基准没有多大意义,主要是A数与B数要一一对应,在数据表中的每一条记录要包含一组对应的数据。曲线控件采用WINCC的曲线控件应该可行。
如果是我来做这个,我会在PLC方采用自定义通讯协议,并且采用主动上传的通讯协议来做,上位机只管被动取数,当然上位机的通讯程序也要自已编写,收到有效数据后就存放到数据库中,然后曲线显示时调用数据库中的数据来显示。当然有可能数据会丢失,如果可靠性要求不是很高,这样做要简单一些;如果要求可靠性很高,则必须要在通讯协议内加入一些握手协议,这个要麻烦一些了。