发表时间: 2019-07-19 09:46:53
作者: 无锡振扬电子科技有限公司
浏览:
在工控领域,我们用到的组态软件有组态王、Cimplicity等,一方面这些软件是收费的,另一方面无论这些软件做得多好,都没办法把自己的品牌打出去,没办法满足各种自定义的需求。于是,我花了两个星期时间,开发了一款简易版的。这是流程图界面:
其实组态软件并没有我们想像的那么难。我们需要的功能无非就是有一张可以灵活编辑的图,这个图里面的元素会根据系统的状态去变化。
一、图片的呈现
我是使用WPF去开发的,首先整个画面是一个Canvas,然后里面放一些Image元素。我们知道,在组态里面,每一个元件有几种状态。例如一个阀,有半闭的状态和打开的状态,一条水管,有静止和向左向右流动的状态。我们设计的方法是,根据系统的数据,判断应该呈现哪一张图,然后把那张图添加在Canvas里面。当系统数据改变时,Canvas去掉旧图,添加新图。
静态的图可以用png、jpg这些格式,动态的图只能使用gif了。WPF默认是不能显示动态图的,我使用了一个第三方库去完成这项任务。有兴趣的朋友可以搜索一下WpfAnimatedGif,这是目前发现显示gif性能***的一个第三方库。
二、元件的结构
其实在组态图中,有两种元件,一是图片,二是文字。而且,图片有三种拉伸方法,一是随意拉伸,二是只能横向拉伸(例如水平的管路),三是只能竖向位伸。我们把元件类结构定义如下:
其中,Component类完成了所有移动、放缩、旋转的功能,而下面继承的类只是指明了一些额外的属性。
三、图片的编辑
图片的编辑是最为复杂的一项功能。编辑界面如下图所示:
我实现了一些基本的功能,例如选中元件之后,进行拉伸拖拉、放大缩小、旋转等,还有上下移动一层、对齐等功能。在这里面,旋转之后的放缩是最为复杂的。
在WPF里面,元素的旋转都是使用RotateTransform完成的。旋转之后,元素在我们眼中,其Left和Top属性都变了,但其实在代码里,Left和Top并没有变化。这就产生了两个坐标系。我们看到的元件坐标系跟元件在代码里的坐标系是不一样的。而我们用鼠标去拖动元件的时候,鼠标的坐标其实是我们眼中的坐标系,对元件产生作用前,需要先转成元件真实的坐标系。当元件动了以后,它在自己坐标系里的位置需转换成我们眼中的坐标系。这里面需要用到一些微分的概念。具体怎么算的,在这里不赘述,文字很难表达。
工业与控制系统开发
工业与控制系统开发, 工业控制系统是对诸如图像、语音信号等大数据量、高速率传输的要求,又催生了当前在商业领域风靡的以太网与控制网络的结合。这股工业控制系统网络化浪潮又将诸如嵌入式技术、多标准工业控制网络互联、无线技术等多种当今流行技术融合进来,从而拓展了工业控制领域的发展空间,带来新的发展机遇。
软件设计
软件设计是从软件需求规格说明书出发,根据需求分析阶段确定的功能设计软件系统的整体结构、划分功能模块、确定每个模块的实现算法以及编写具体的代码,形成软件的具体设计方案。 软件设计是把许多事物和问题抽象起来,并且抽象它们不同的层次和角度。将问题或事物分解并模块化使得解决问题变得容易,分解的越细模块数量也就越多,它的副作用就是使得设计者考虑更多的模块之间耦合度的情况。
PCB硬件设计
PCB硬件设计 印制电路板的设计是以电路原理图为根据,实现电路设计者所需要的功能。印刷电路板的设计主要指版图设计,需要考虑外部连接的布局。内部电子元件的优化布局。金属连线和通孔的优化布局。电磁保护。热耗散等各种因素。***的版图设计可以节约生产成本,达到良好的电路性能和散热性能。简单的版图设计可以用手工实现,复杂的版图设计需要借助计算机辅助设计(CAD)实现。
振扬电子科技有限公司是一家致力于提供软件、PCBA、电子、电气、机电产品设计服务的高新技术企业, 具有多年的单片机开发及工业控制电路设计、单片机编程、硬件电路、驱动电路设计、工业控制板、家电控制板的生产经验, 研发领域涉及包括安防、机电、温控设备、机电产品、仪器仪表等多个领域。
近年来,公司尤为专注于单片机智能控制和工业自动化控制和机电设备智能控制、自动化的应用与推广,专业为企业提供完善的自动控制系统研发和工业控制器、控制板的设计生产服务。
公司的科研力量强大,机械电子、电气、通讯等领域人才组成的科研开发队伍正不断壮大。 针对每个项目的设计研发,公司设立项目管理小组,在为客户提供研发设计同时,能全面兼顾时效与成本。