我的上位机

显示对象: Dtextbox :IExecutable,IDataVisitable

              接口:实现可运行接口,可访问数据接口

              功能:显示数值,并根据数值范围指定不同的颜色,指定报警范围。

            SetVisitor(IDataVisitor visitor)// 设定数据访问器 

            SetData(string DataName)  // 设定变量

             AddSpan(dataSpan span,Color spanColor,bool alarmEnable)

             ClearSpan();

             execute();

显示对象: Stextbox :IExecutable,IDataVisitable

            接口:实现可运行接口,可访问数据接口

              功能:显示字符串指定不同的颜色,指定报警范围。

            SetVisitor(IDataVisitor visitor)// 设定数据访问器 

            SetData(string DataName)  // 设定变量

           AddString(int index,string Text,Color textColor)

           ClearString()

          execute();


   数据采集系统,完全可以独立。

数据分为三部分:

             数据采集系统:来自设备的数据,暂时只支持无符号整数。

           数据处理系统:

                               上位机转化数据:把下位机的无符号整数转化为带符号整数,实数,布尔变量。二级数据

                               对于二级浮点数,还可以计量。计量后的值是为 三级数据。


      计量子系统:为数据采集内部系统,外部无法知道所取得的数据是否经过计量。 提供计量界面。                     

                     计量一般采用最小二乘法。系数采用XML储存。

                    对于可计量的数据,先加入计量,在计量子系统内保存计量参数,外部访问可计量数据,接口从计量子系统获取。

                     外部访问数据应该统一接口,数据使用者不知道数据经过怎样的处理。

          数据访问系统:

                       内部访问:

                       外部访问:接口布尔访问器,BoolVisitor(string DataName)

                        整数访问器 IntVisitor(string DataName)

                       浮点数访问器floatVisitor(string DataName)


数据写入。所有写入数据均为无符号整数。预先写入数据,必须经过处理转化为无符号整数?(存疑,有的设备支持写入负数,有的设备是ascii通讯)

接口:WriteInt(string DataName,unit Value);


设备

(设备和数据采集系统,他们有怎样的接口?数据采集系统是否应该知道设备的变量的地址?一个数据采集系统应该有台设备,知道从哪台设备获取数据)

设备中的数据变量应该有两个地址,一个是虚拟地址,供数据采集系统使用,一个是实际地址,供直接从设备采集数据用。

支持读取和写入。


上位机核心部分:测控

             应该有的部分:配方(测量参数)。数据储存。报警。报表。实时曲线。

在一个测试开始前,读取配方。测试结果如何保存? 数据储存结构如何表示。每个应用都差别巨大。

扫描式执行?

结构语法?一般组态软件都是使用脚本语言。使用状态转移模式?

如何支持多工位?系统级别的变量?


目前已验证的思路是:在一个测试开始前,构建测试,比如读取配方,hook实时曲线。hook结果储存器等。每一个测试,中间过程变量使用全局变量。这样在测试外部可以显示测试状态,可以对测试进行监视和控制。测试使用非阻塞代码,扫描式执行。

在目前项目中用到的东西,仿PLC的定时器,计数器。全局变量


这部分需要提取所有项目用例,全面考虑。


系统构建过程:创建设备,创建数据采集系统。创建测控系统。


定时器是使用C#提供的timer,这其实是开了另外一个线程。在一个测试中,隐含使用了PLC的控制模式。可否用纯非阻塞的代码实现定时器?

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值