CN107561950B - 楼宇中控制器的编程方法及提供控制器编程工具的服务器 - Google Patents

楼宇中控制器的编程方法及提供控制器编程工具的服务器 Download PDF

Info

Publication number
CN107561950B
CN107561950B CN201610509471.4A CN201610509471A CN107561950B CN 107561950 B CN107561950 B CN 107561950B CN 201610509471 A CN201610509471 A CN 201610509471A CN 107561950 B CN107561950 B CN 107561950B
Authority
CN
China
Prior art keywords
puzzle
puzzle piece
programming
controller
input
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201610509471.4A
Other languages
English (en)
Other versions
CN107561950A (zh
Inventor
王曙光
秦川
王彦超
李会强
Original Assignee
Siemens Schweiz AG
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Siemens Schweiz AG filed Critical Siemens Schweiz AG
Priority to CN201610509471.4A priority Critical patent/CN107561950B/zh
Publication of CN107561950A publication Critical patent/CN107561950A/zh
Application granted granted Critical
Publication of CN107561950B publication Critical patent/CN107561950B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

本发明提出一种用于楼宇中控制器的编程方法以及提供控制器编程工具的服务器。该编程方法包括:响应于来自不同于所述控制器(C)的一个用户设备(UD)的访问请求,而提供具有编程用户界面(P‑UI)的响应;其中,所述编程用户界面(P‑UI)能够由所述用户设备(UD)上的网页浏览器(WEB‑B)呈现,且在呈现时所述编程用户界面(P‑UI):提供可操控的至少两个拼图块(420),每个拼图块(420)代表能够由所述控制器(C)执行的一个或一组指令,当两个拼图块彼此兼容时,一个拼图块(420‑1)的输入连接端与另一个拼图块(420‑2)的输出连接端能够相互啮合连接(430)。

Description

楼宇中控制器的编程方法及提供控制器编程工具的服务器
技术领域
本发明总体涉及楼宇内的暖通空调(HVAC)系统和楼宇自动化(BAS)系统,尤其涉及用于对HVAC或BAS系统中控制器进行配置/编程的编程工具,以及提供该编程工具的服务器。
背景技术
暖通空调系统是楼宇或建筑物内的采暖、通风和空气调节的总称,从功能上说是整个建筑的一个重要组成部分。随着城市化的发展,大型商业楼宇或办公楼宇都全面采用了先进的暖通空调系统。在暖通-空调系统中,为了控制各个现场执行设备(例如,风机,阀门等),通常采用控制器来实现分散控制。分布式的控制器一方面采集现场传感器的数据,另一方面输出控制信号给相应的执行设备。同时,控制器还可以与上位计算机连接,以便及时报告工作状态。
楼宇自动化系统(BAS)是对整个建筑内的公用机电设备进行管理和控制。楼宇自动化系统例如可以包括如上所述暖通-空调系统、也可以包括排水监控系统、照明监控系统、电力监控系统、甚或可以包括保安和消防系统。根据各个楼宇本身的特点,其各自的楼宇自动化系统在规模和管理模式上均有所不同。一种典型的楼宇自动化系统的管理方式是分散控制集中管理。也就是说,例如采用控制器进行分布式控制,同时利用能够连接到这些控制器的上位计算机对各个设备进行监控和管理。
如此,控制器为HVAC和BAS中的一个关键部件。每个控制器在使用前均需要利用专用的编程工具对控制器进行配置或编程。现有的编程工具多为单机版工具,即工程人员需要获得可安装软件并将其安装到自己的计算机上。一旦编程工具需要更新,工程人员就需要卸载、重装一个新的编程工具。除了单机版工具外,还有一种基于客户端-服务器架构的网络编程工具,其架构如图1所示。参见图1,一个或多个用户设备(例如笔记本110或平板电脑120)可以通过网络130连接到一个服务器140,并从服务器140处下载客户端软件,并将其安装到用户设备110和120上。客户端-服务器架构的编程工具可以通过网络实现更新,但是同样需要在用户设备上安装一个客户端软件。这样,当用户希望用不同的终端设备对控制器进行配置时,用户需要在每个终端设备上均安装该客户端软件。
图2示例性地示出了一个现有的线图型编程工具。如图2所示,线图型编程工具具有多个逻辑模块A~D,每个逻辑模块具有多个输入端和多个输出端。逻辑模块之间的连线表示这些逻辑模块之间的逻辑关系。由图2可见,这种线图型编程工具可以在一定程度上提供可视化编程,但是其结构复杂,因而操作人员需要在充分培训之后才能熟练掌握,否则这种线图型编程工具容易引起错误连接。
发明内容
本发明的一个目的在于提供一种对楼宇(例如HVAC系统或BAS系统)中控制器进行配置或编程的编程方法和编程工具。采用本发明提出的方案,编程过程清晰简明,且不易出现错误连接。
根据本发明一个方面,本发明提出了一种用于楼宇中控制器的编程方法,包括:响应于来自不同于所述控制器的一个用户设备的访问请求,而提供具有编程用户界面的响应;
其中,所述编程用户界面能够由所述用户设备上的网页浏览器呈现,且在呈现时所述编程用户界面:提供可操控的至少两个拼图块,每个拼图块代表能够由所述控制器执行的一个或一组指令,每个拼图块具有至少一个输入连接端和/或至少一个输出连接端,其中每个所述输入连接端为所述拼图块的一个凹口或开口,每个所述输出连接端为所述拼图块的一个突出部;当两个拼图块彼此兼容时,一个拼图块的输入连接端与另一个拼图块的输出连接端能够相互啮合连接。
优选地,该编程方法还包括:接收来自所述用户设备的编译请求,所述编译请求包括基于所述用户界面生成的拼图数据;对所述拼图数据进行解析并生成与之对应的代码;对所述代码进行编译,以生成能够由所述控制器运行的执行文件;将所述可执行文件发送到所述用户设备。
优选地,所述编程用户界面在由所述网页浏览器上呈现时还包括:获取彼此邻近的第一拼图块的输入连接端与第二拼图块的输出连接端之间的距离;若所述距离小于一个预定的阈值,则获取所述第一拼图块的输入连接端的一个兼容列表;若所述第二拼图块不归属于所述兼容列表,则移动所述第二拼图块的位置以使得所述距离大于所述预定阈值。优选地,所述兼容列表包括可连接到所述输入连接端的拼图块的共同属性,所述共同属性包括拼图块的功能、拼图块的分类、拼图块的适于场景、拼图块的输入/输出连接端的数目、拼图块的名称、拼图块的开发者中至少之一。
优选地,所述编程用户界面在由所述网页浏览器呈现时还包括:提供一个关联拼图块,在其第一位置和第二位置上可分别设置有一个多选一控件,且在所述第二位置处的所述多选一控件的选项与所述第一位置处的多选一控件的选项相关联;截获对所述第一位置处多选一控件中选项进行更新的事件,以及获取所述更新后的选项;根据所述更新后的选项,修改所述第二位置处的多选一控件的可选项。
优选地,所述根据所述更新后的选项,修改所述第二位置处的多选一控件的可选项的步骤包括:删除所述第二位置处的原始多选一控件;基于所述更新后的选项,生成一个新的多选一控件且在所述第二位置处呈现,其中,所述新的多选一控件的可选项与所述第一位置处多选一控件更新后的选项相适应。
优选地,所述编程用户界面在由所述网页浏览器呈现时还包括:提供一个独立工作区,用于构造一个自定义封装块;在所述独立工作区内提供一个封装拼图块,其输入连接端的个数和属性、拼图块的内部逻辑、以及其输出连接端的个数、类型中任一均可进行配置。
根据本发明另一个方面,本发明还提出了一种为楼宇中控制器提供编程工具的服务器,包括:一个或多个存储器,其存储有一个或多个资源文件,所述资源文件在一个网页浏览器上渲染后能够呈现出一个如上述编程方法中所述的编程用户界面;一个或多个处理器,其被配置成响应于来自一个用户设备的网页浏览器的访问请求,而将所述资源文件作为响应发送给所述网页浏览器。
采用上述方案,用户无需安装客户端软件即可完成在线的控制器编程,并获得可以在控制器上运行的可执行文件。优选地,在服务器侧采用分层管理。具体地,所有与控制器的固件相关联的程序可以被封装成库文件。在编译时引入该库文件,从而形成最终的可执行文件。这种分层处理方式,编程逻辑可以独立于控制器的固件之外。这样,控制器的固件更新,不会影响编程工具。而且,根据需要,可以采用不同的控制器的驱动库来编译相同的编程逻辑。这样,用户设计的同一编程逻辑可以适用于不同的控制器,甚或可以通过不同的编译器实现控制器在不同平台上的模拟。
本发明的发明人引入了模块兼容性的概念,这一方案特别适用于楼宇中的控制器。在楼宇中存在大量的现场设备,这些设备会按照多种不同的方式/层级进行分类,很多功能模块可以具有数据类型彼此兼容的输入和输出。采用本发明提出的模块兼容概念,用户可以在更高的层级(例如拼图块的功能分类或分层,甚或拼图块的名称)判断兼容性,而不会仅因数据类型彼此兼容就错误地将二者连接在一起。由此,这种模块兼容性的设定,可以非常有效地降低用户的误操作
而且,上述方案中提供的拼图式编程界面可以通过简单的拼图块的连接实现对控制器的编程。而且,与线图型编程工具相比,拼图式编程界面更加直观且界面友好,工程人员无需长时间培训即可熟练使用该界面。
下文将以明确易懂的方式,结合附图说明优选实施例,对切换装置的上述特性、技术特征、优点及其实现方式予以进一步说明。
附图说明
以下附图仅对本发明做示意性说明和解释,并不限定本发明的范围。
图1示出了一种传统的客户端-服务器架构的控制器编程工具。
图2示出了一种传统的线图型编程工具的示意图。
图3示出了根据本发明一个实施例的编程工具的架构。
图4示出了根据本发明一个实施例的编程工具的一个用户界面示意图。
图5A~5C示出了根据本发明另一个实施例的编程工具中设置页面的示意图。
图6示出了根据本发明另一个实施例的模块兼容性判断的流程图。
图7示出了根据本发明又一个实施例的具有兼容性判断的用户界面的示意图。
图8A~8C示出了根据本发明又一个实施例的编程工具中下拉菜单关联性的示意图。
图9示出了根据本发明又一个实施例的编程工具中下拉菜单关联的流程图。
图10示出了根据本发明又一个实施例的编程工具中自定义封装工作区。
图11示出了根据本发明又一个实施例的编程工具中使用自定义封装的页面的示意图。
具体实施方式
为了对发明的技术特征、目的和效果有更加清楚的理解,现对照附图说明本发明的具体实施方式,在各图中相同的标号表示结构相同或结构相似但功能相同的部件。
在本文中,“示意性”表示“充当实例、例子或说明”,不应将在本文中被描述为“示意性”的任何图示、实施方式解释为一种更优选的或更具优点的技术方案。
为使图面简洁,各图中只示意性地表示出了与本发明相关的部分,它们并不代表其作为产品的实际结构。另外,为使图面简洁便于理解,在有些图中具有相同结构或功能的部件,仅示意性地绘示了其中的一个,或仅标出了其中的一个。
在本文中,“一个”不仅表示“仅此一个”,也可以表示“多于一个”的情形。另外,在本文中,“第一”、“第二”等仅用于彼此的区分,而非表示它们的重要程度及顺序等。
本发明的发明人提出采用可视化的拼图形式的编程工具来作为楼宇(特别是HVAC或BAS)中控制器的编程工具。而且,根据楼宇中控制器的应用特点简化拼图式编程工具,从而得到专用于楼宇控制器的编程工具。采用可视化拼图式编程工具使得人机交互界面更加友好,不易出错,操作人员无需长期培训即可掌握编程工具。
框架结构
图3示例性地示出了根据本发明一个实施例的控制器编程工具的架构300。如图3所示,用户设备UD(UD:User Device)可以通过网络130连接到服务器S(S:Server)。这里用户设备UD可以是笔记本电脑、平板电脑、手机或任何可通过网页浏览器访问网络的终端设备。服务器S可以上一个单个的实体服务器,也可以是由多个服务器构成的云服务器,其具有一个或多个存储器,用来存储服务器侧的资源和数据,其还具有一个或多个处理器来处理请求并作出响应,或根据请求来完成相应操作。与图1不同的是,用户设备UD上无需安装任何客户端软件。相反,用户可以通过用户设备UD上自带的网页浏览器(WEB_B:Web-Browser)来向服务器S提出访问请求310。例如,从用户的角度看,用户只需要在网页浏览器WEB_B的地址栏中键入统一资源定位符URL(Uniform Resource Locator)即可发出需要获得编程服务的访问请求310。
接收到访问请求310后,服务器S将编程用户界面P-UI(P-UI:Programming UserInterface)作为响应320发送给用户设备UD。这里,优选地,服务器S将与编程用户界面P-UI对应资源文件(例如JavaScript、css、png等)发送给用户设备UD的网页浏览器进行渲染,从而在用户设备UD的显示器上呈现出例如如图4所示的用户界面。用户可以操控该用户界面上的元素,以实现其所期望的逻辑编程。如图4所示,编程用户界面P-UI提供多个可操控的拼图块420。每个拼图块代表可在控制器上执行的一个或一组指令,也可称作一个逻辑单元。拼图块420彼此连接(例如连接点430)在一起代表这些逻辑单元之间的逻辑关系。用户界面的具体内容将在下文中详述。
如此,用户操控如图4所示的拼图块,形成包括拼图块及其彼此连接关系的一个拼图结果,如图4中编程区P内所示。这一拼图结果则可以表示用户期望控制器执行的逻辑。在用户点击图4右上角的按钮480后,编程用户界面P-UI可以将用户最终完成的拼图数据330传递给服务器S。优选地,拼图数据330可以用一种描述性语言来表示,例如用XML语言记录的逻辑文件。优选地,拼图数据330可以包括所包含的各个拼图块的名称、位置以及拼图块之间的连接关系。承载有拼图数据330的逻辑文件可以通过网页浏览器与服务器之间的数据传递技术(例如Ajax:asynchronous JavaScript and XML+Json:JavaScript ObjectNotation)传递到服务器S。
服务器S在接收到承载有拼图330的逻辑文件后,对该逻辑文件进行解析,并生成与之对应的代码(Code),该代码的逻辑与拼图330所表示的逻辑相同。代码优选为C语言代码,当然也可以是其他语言的代码。进而,服务器S对代码进行编译,从而生成能够在控制器上直接执行的可执行文件340(例如.bin文件)。然后,服务器S将所生成的可执行文件340传递给用户设备UD。这样,用户就可以从网页浏览器上下载可执行文件340,并将其存储到实体控制器C上执行。
采用如图3所述的架构,用户无需安装客户端软件即可完成在线的控制器编程,并获得可以在控制器上运行的可执行文件。
优选地,在服务器S侧采用分层管理。具体地,所有与控制器C的固件相关联的程序可以被封装成库文件。在编译时引入该库文件,从而形成最终的可执行文件。这种分层处理方式,编程逻辑可以独立于控制器C的固件之外。这样,控制器C的固件更新,不会影响编程工具。而且,根据需要,可以采用不同的控制器的驱动库来编译相同的编程逻辑。这样,用户设计的同一编程逻辑可以适用于不同的控制器,甚或可以通过不同的编译器实现控制器在不同平台上的模拟。
编程界面
图4示出了编程用户界面P-UI一个工作区400的一个逻辑编程页面的示意图。如图4所示,P-UI 400包括工具区T和编程区P,其中工具区T用浅色阴影表示,编程区P用白色表示。在工具区T内,P-UI提供可操控的至少两个拼图块420-x(x=1~9),这些拼图块420-x构成最基础的逻辑单元。简便起见,以下以标识420指代拼图块的全体以及不特指的个体。每个拼图块420-x代表可在控制器C内执行的一个或一组指令。除了主循环块外,每个拼图块420-x具有至少一个输出连接端422和/或至少一个输入连接端424。由图4可见,每个输出连接端422为该拼图块420-x的一个突出部。每个输入连接端424为该拼图块420-x的一个凹口或开口。当两个拼图块彼此兼容时,一个拼图块的输入连接端与另一个拼图块的输出连接端能够相互啮合连接,如连接点430所示。
这里,用户可以对工具区T的拼图块进行各种操作。例如,用户可以通过拖拽方式将单个的拼图块420加入编程区P,实现拼图块的添加。用户还可以在编程区P内随意移动该拼图块420,或者删除该拼图块。用户也可以通过移动拼图块而将两个彼此兼容的拼图块连接在一起,如图4中拼图块420-1和拼图块420-2在连接点430处彼此连接。
在图4中,优选地,在工具区T内,以分组方式呈现出多个拼图块420。例如,在图4例子中,拼图块420被分为程序、数据、计算、逻辑、HVAC、显示等若干类。工具区T最左侧以菜单罗列这些分类。点亮菜单中的一个分类,则可得到该分类下提供的拼图块420。例如,如图4所示,当前分类为“HVAC”,该分类下提供有例如2个拼图块,即拼图块420-2(PI控制模块)和拼图块420-3(参数计算模块)。同一分类下的拼图块大体上具有至少一种类似的属性。例如,在图4所示的编程区P右侧,嵌入PI控制模块420-2的4个输入连接端的四个拼图块420-4均为数据块,其具有一个输出连接端,其数据内容为下拉菜单式选项或直接输入的数值。再比如,图4所示的编程区P下部的显示程序中,页面块420-5表示在控制器C的LCD上显示的一个页面,其页面名称为“新风机组”。该页面块420-5可以具有多个输入连接端,每个输入连接端表示该页面内一行的显示信息。文本块420-6可以构建该页面内的行信息。如图4所示,文本块420-6例如可以包括三个可选的输入连接端424-6,每个输入连接端为一个拼图形状的开口,与之匹配的数据块420-4可以嵌入其中。文本块420-6的输出连接端422-6可以与页面块420-5的行输入端彼此连接。
图4所示出的拼图式编程界面P-UI可以通过简单的拼图块的连接实现对控制器C的编程。而且,与线图型编程工具相比,拼图式编程界面更加直观且界面友好,工程人员无需长时间培训即可熟练使用该界面。
此外,在图4的例子中,仅仅将示出了工作区400中逻辑编程页面的情况。P-UI除了提供编程页面外,还以表格方式(Table)向用户呈现设置界面/配置页面。这些配置/设置页面例如包括通道初始化页面、变量定义页面和通信编程页面。图5A~5C分别示例性地示出了这三个页面的实例。
图5A中,通道初始化页面510可便于用户根据控制器C的各个I/O通道的实际连接状况,对各个I/O通道进行配置。通道初始化页面510包括实际使用的各个通道的标识符X1、X2、X3、每个通道的名称(例如送风温度等),每个通道的类型(输入/输出或者模拟量/数字量),还可选地包括该通道物理量的详细描述。通道的初始化相当于定义了各个输入/输出数据的类型和数值范围。例如,通道X1为一个输入端口,其连接到一个送风温度传感器的输出,用于获得一个数值范围在正负50摄氏度之间的温度输入量。再比如,通道X2为一个数字输出端,其输出只有启动或停止两个状态,其连接到一个控制风机启停的使能端,用来控制风机的启停。通道初始化页面内增加、删除或更改相关的通道数据,在如图4所示的逻辑编程页面内,相关拼图块420-4则对应变化。
图5B示出了变量定义页面520,其可便于用户设定一些逻辑编程中使用到的变量。变量定义页面520例如可包括变量名称、变量的数据类型、变量的数值范围以及该变量的默认值等内容。在图5B的例子中,所定义的变量例如包括送风温度设定和过滤器。这里送风温度设定为一个模拟量输入,其数值范围在0~100之间,默认值为18。过滤器变量为一个数字量,其只有“0”和“1”两种情况,默认为“0”,即无过滤器。同样地,变量定义页面内增加、删除或更改相关的变量,在如图4所示的逻辑编程页面内,相关拼图块420-4则对应变化。
图5C示出了通信编程页面530,其可方便用户访问以总线方式连接的各个设备的信息。例如,通信编程页面包括三个部分。第一部分532为通信初始化,其设定当前控制器C是否与其他设备通信(是否禁用)、通信方式(RS485、以太网或其他通信方式)以及通信过程中的地位(例如Modbus协议中的主站或从站)。若控制器C为主站,则控制器C可对其他从设备的寄存器进行读/写。若控制器C为从站,则控制器C需要提供可供主站读/写的数据。为了描述方便,图5C同时示出了主站模式536和从站模式534下的设置方式,但实际应用中控制器C在同一时刻只充当主站和从站二者之一。在从站模式534下,经由总线通信,控制器C可以向主设备提供可读/写的数据,与之对应的寄存器地址和数据类型。在主站模式536下,经由总线通信,控制器C可以对从设备的寄存器地址进行读写,并将其设定为其一个通信变量。换言之,对该通信变量的操作即为对相应从设备的寄存器地址的操作。图5C仅仅示出了在MODBUS协议下定义通信变量所需的内容。图5C的表项内容也可以根据通信协议的不同而变化。
在图5所示的例子中,一旦通道初始化、变量定义或通信编程中任一页面内的任一条目确定,与之对应的数据拼图块420-4的设置也相应完成。例如,如果送风温度设定变量的名称发生变化,则图4中数据拼图块420-4中的送风温度设定块的名称也会相应变化。优选的方式是先完成相关通道、变量和通信变量的设置,然后逻辑编程界面内的各个相关的数据拼图块420-4也相应自动确定。采用图5所示的三个设置页面,工程人员可以方便地设置控制器C的各个通道、从控制器C的用户界面设定的变量、以及经由通信总线读/写的通信变量,这样就设定了与控制器C相关联的输入和输出。如何对这些输入和输出进行处理则可以由逻辑编程界面中各个拼图块自身的功能及其彼此之间的逻辑关系来决定。
兼容性判断
对于线图形式的编程工具,工程人员很容易因误操作而将原本不关联的功能模块连接在一起。在图6所示的P-UI 600中,为了避免误操作,本发明的发明人提出了拼图块兼容的概念,这里所说的拼图块兼容不仅仅指输入和输出连接端的数据类型兼容,还包括拼图块之间的兼容性。
图6示例性地示出了根据本发明又一个实施例的具有模块兼容性判断的流程图。图7示出了一个具体事例。兼容性判断为P-UI的一部分且在网页浏览器呈现P-UI的过程中完成。在图7的例子中,P-UI 600在其编程区P内仅示例性地呈现出了显示程序部分,该显示程序部分可使得控制器C上的LCD显示用户期望的内容。与图4相同,显示程序包括页面显示(即页面拼图块420-5),页面内包括行显示(即,文本拼图块420-6,720-6)。文本拼图块720-6具有可选的三个输入连接端724-6,其分别是文本输入、数值输入以及其他输入。例如,以连接到页面拼图块420-5的“行2”的文本拼图块为例。文本输入为“风机输出”,表示当前行显示对“风机输出”的设置。数值输入为“风机启停”通道的值,即在LCD显示当前“风机输出”的状态,启动或停止。“风机启停”通道的状态以一个枚举型文本列表显示,其具体有ON/OFF两个可选项。这里,数值输入的输入连接端724-6的数据类型为布尔型,也就是开关量。若此时,将一个逻辑分类下的拼图块720-7靠近该输入连接端424-6,则P-UI首先进行兼容性判断。拼图块720-7为一个用于比较两个输入是否相等的逻辑拼图块。
如图6所示,兼容性判断从拼图块720-7的输出连接端722-7靠近文本拼图块420-6的输入连接端724-6开始。在步骤S610中,P-UI 700获取彼此邻近的拼图块420-6的输入连接端724-6与拼图块720-7的输出连接端722-7之间的距离D。在步骤S620中,P-UI 700判断该距离D是否小于一个预定的阈值Th。换言之,当距离D足够小时才认为用户试图将两个拼图块连接在一起。在步骤S630中,若距离D小于阈值Th,则P-UI 600进一步获取一个模块兼容列表L,该列表L与拼图块420-6的输入连接端724-6关联。模块兼容列表的一个例子是该列表包括可与该输入连接端连接的拼图块的分类。例如,对于该输入连接端724-6而言,其模块兼容列表仅包括数据类的拼图块。可选地,模块兼容列表L的另一个例子是该列表包括可与该输入连接端连接的拼图块的名称。可选地,模块兼容列表L的又一个例子是该列表还可包括能够与该输入连接端连接的拼图块的其他共同属性,例如共同属性可以包括拼图块的功能、拼图块的分类、拼图块的适于场景、拼图块的输入/输出连接端的数目、拼图块的名称、拼图块的开发者中至少之一。进而,在步骤S640,判断所述拼图块720-7是否归属于该模块兼容列表。在步骤S650,如果归属于该模块兼容列表则两个拼图块相互啮合连接。在图7的例子中,逻辑拼图块720-7显然不在724-6的模块兼容列表中。因而,流程行进到步骤S660中,P-UI 700移动拼图块720-7的位置以使得所述距离D大于预定阈值Th,即如图7中箭头所示“弹开”。
优选地,两个连接端在相互靠近时,除了按照图6所示步骤判断模块兼容性外,还可以根据两个连接端的数据类型,判断二者是否兼容。比如,图7的例子中,可进一步在两个拼图块的连接端相互靠近时判断二者的数据类型是否一致,例如是否均为布尔型。如果是,方可连接,否则保持二者距离大于Th。在图7的例子中,输入连接端724-6和输出连接端722-7均为布尔型。如果仅考虑数据兼容性则二者可连接。
在图6和图7的例子中,本发明的发明人引入了模块兼容性的概念,这一方案特别适用于楼宇中的控制器。在楼宇中存在大量的现场设备,这些设备会按照多种不同的方式/层级进行分类,很多功能模块可以具有数据类型彼此兼容的输入和输出。采用本发明提出的模块兼容概念,用户可以在更高的层级(例如拼图块的功能分类或分层,甚或拼图块的名称)判断兼容性,而不会仅因数据类型彼此兼容就错误地将二者连接在一起。由此,这种模块兼容性的设定,可以非常有效地降低用户的误操作。
动态数据关联
如图5所示,工程人员在进行控制器C的编程前可能需要对控制器C的各个通道、可配置变量、可通信连接设备处的数据等进行读取和设置。这就造成P-UI中数据型拼图块数量过多。为了简化界面,且易于用户识别和操控,本发明的发明人提出一个可以实现动态数据关联的关联拼图块,其具有相互关联的至少两个多选一控件,例如下拉菜单或多项选择按钮等。
图8A~8C示例性地示出了一个具有关联性下拉菜单的赋值拼图块820。赋值拼图块820的功能是将一个从输入连接端824获得的值赋给某一个通道、某个变量或某个通信变量。如图8所示,赋值拼图块820在其位置A和B处分别具有两个下拉菜单控件,即,第一下拉菜单826和第二下拉菜单828。下拉菜单828的内容与下拉菜单826的内容相关联,这两个下拉菜单组合在一起可以唯一确定要被赋值的对象。在图8的例子中。具体地,下拉菜单826包括三个可选项,即通道、变量和通信。每个选项对应图5中的一个设置页面。下拉菜单828则为下拉菜单826所选设置页面下的表项列表。例如,若下拉菜单826为通道选项,则位于B处的下拉菜单包含在通道初始化页面下的表项,即“送风温度”、“水阀开度输出”和“风机启停”。若下拉菜单826为变量选项,则位于B处的下拉菜单包含在变量定义页面下的表项,即“送风温度设定”、“过滤器”。
图9示出了实现图8所示动态数据关联的流程图。当P-UI在网页浏览器上呈现时执行图9所示的流程。假定用户确定了一个当前的赋值对象,即通过点击下拉菜单828选择“通道”中的“水阀开度输出”项作为当前赋值对象,如图8A所示。如图9所示,关联流程从步骤S910开始。在步骤S910中,P-UI截获对下拉菜单826的选项进行更新/改变的事件,如图8B所示。截获该更新事件的同时获得下拉菜单826更新后的选项,即变量选项。在步骤S920,P-UI修改B处下拉菜单,使其表项与变量定义页面内的表项一致。具体地,在步骤S922,P-UI移除原下拉菜单828这个控件。在步骤S924,根据变量定义页面内的表项生成一个第三下拉菜单829控件。在步骤S926,在位置B处呈现新下拉菜单829,如图8C所示。这样,修改后的下拉菜单的可选项与第一下拉菜单的选项相适应。
采用图9所示的方式,可以用两个彼此关联的下拉菜单唯一选定所需赋值的对象。可选地,当变量数量增加时,还可以使得两个以上的菜单彼此关联。这样可以分层、分页设置通道、变量和通信变量,且通过多个菜单关联方式方便地确定一个赋值对象。虽然在以上例子中以赋值拼图块为例来描述动态数据关联的方案,但是实际使用中,这种关联的菜单也可以应用在其他拼图块中。例如,数据量可以用一个简单的数据型拼图块来表示,其可以包含如图8A所示的两个关联菜单,所不同的是没有赋值输入连接端,而有一个输出连接端。
自定义封装
在图4所示的例子中,工具区T内还包含一个封块类。该类包含有用户自定义的封装逻辑。在很多情况下,用户可能需要将已经较为成熟或常用的编程逻辑封装成一个封装块,其可以作为未来编程中使用的又一个基础逻辑单元。这样用户无需为相同的逻辑重复编程。此外,某些用户可能也愿意将某些设计巧妙的逻辑封装成封装块,提供给其他客户使用。这样也避免各个用户独自重复开发。
图10和图11分别示出了进行自定义封装的独立页面和一个使用了封装块的编程页面的示例。图10示意性地示出了P-UI的一个独立工作区1000,其为仅用作自定义块的封装。在图10的例子中,用户在此P-UI 1000内完成了一个名称为“自定义”的封装块,其具体逻辑如图10中编程区P所示。
图10所示的自定义工作区1000与图4所示编程工作区400类似,其同样具有工具区T和编程区P且工具区内同样提供基础的拼图块。与图4不同的是,其还具有一个封块变量分类,该分类特别包括仅与自定义封装块相关的输入量、输出量或其他变量。例如,图10的例子中,“冬夏转换”和“风机启停”两个变量块为自定义封装的两个布尔型输入,“送风温度设定”和“送风温度”两个变量块为自定义封装的两个模拟量输入。自定义封装的输入变量块均用1024指示。而“水阀开度输出”为自定义封装的模拟输出,也就是输出变量块1022。用户可以预先确定所要生成的自定义封装的这些输入和输出变量块。然后,在编程区P,用户可以利用已有的各种拼图块(包括其他已经封装好的封装块)来实现自定义封装的内部逻辑。例如,如图10的编程区P内所示,用户选用两个PI控制分别计算冬、夏情况下水阀开度输出,其中冬季使用正比例算法,夏季使用反比例算法。然后,用户选用一个选择逻辑拼图块,以根据“冬夏转换”输入选择与之对应的PI控制块的输出。最后,将选定的PI控制块的输出赋给输出变量块“水阀开度输出”。如此设计完成的“自定义”封装块可以实现根据冬夏季设定而自动控制水阀开度的功能。
用户完成如图10所述的封装块设计后可点击右上角的按钮480保存该封装块。这样,所生成的封装块就会存入服务器S内的一个数据库中。
图11示出了一个与图4类似的常规工作区P-UI 1100。一旦在如图10所示的自定义工作区1000内成功保存一个封块,在图11所示P-UI 1100中,工具区T内的封块分类中就会自动显示出一个“自定义”封装块1120,其名称、输入和输出与图10的封装相同。在编程区P内,用户可以直接使用该“自定义”封装块1120。具体地,用户只需要按照封装块1120中输入和输出的要求,为之连接相应的通道或变量即可,而无需关心“自定义”封装块内部逻辑是如何实现的。
当需要编译如图11所示的逻辑时,服务器S调用数据库中所对应的封装块的代码,用该代码替代封装块的逻辑。
这种自定义封装功能可以方便用户根据实际需要封装那些经典的、常用的或精巧设计的编程逻辑,免于用户重复编写相同的逻辑。此外,图10所示的自定义工作区1000完全独立于如图4所示的编程工作区,因而所生成的封装块可以被各个其他工作区所共享。自定义封装所生成的封装块可以脱离于控制器C的具体通道设置而存在,而且同一封装块有可能被不同编程项目、不同应用场景,甚或不同用户所使用。因而,将自定义封装设置在如图10所示的独立工作区内,一方面可以使得用户更加专注于自定义逻辑,另一方面可以方便多项目、多用户共同使用该封装块的结果。
应当理解,虽然本说明书是按照各个实施例描述的,但并非每个实施例仅包含一个独立的技术方案,说明书的这种叙述方式仅仅是为清楚起见,本领域技术人员应当将说明书作为一个整体,各实施例中的技术方案也可以经适当组合,形成本领域技术人员可以理解的其他实施方式。
上文所列出的一系列的详细说明仅仅是针对本发明的可行性实施例的具体说明,它们并非用以限制本发明的保护范围,凡未脱离本发明技艺精神所作的等效实施方案或变更,如特征的组合、分割或重复,均应包含在本发明的保护范围之内。

Claims (12)

1.一种用于楼宇中控制器的编程方法,包括:
响应于来自不同于所述控制器(C)的一个用户设备(UD)的访问请求,而提供具有编程用户界面(P-UI)的响应;
其中,所述编程用户界面(P-UI)能够由所述用户设备(UD)上的网页浏览器(WEB-B)呈现,且在呈现时所述编程用户界面(P-UI):
提供可操控的至少两个拼图块(420),每个拼图块(420)代表能够由所述控制器(C)执行的一个或一组指令,每个拼图块(420)具有至少一个输入连接端(424)和/或至少一个输出连接端(422),其中每个所述输入连接端(424)为所述拼图块(420)的一个凹口或开口,每个所述输出连接端(422)为所述拼图块(420)的一个突出部;
当两个拼图块彼此兼容时,一个拼图块(420-1)的输入连接端与另一个拼图块(420-2)的输出连接端能够相互啮合连接(430);
其中,所述编程用户界面(P-UI)在由所述网页浏览器上呈现时还包括:
获取彼此邻近的第一拼图块(720-6)的输入连接端(724-6)与第二拼图块(720-7)的输出连接端(722-7)之间的距离(D);
若所述距离(D)小于一个预定的阈值(Th),则获取所述第一拼图块(720-6)的输入连接端(724-6)的一个兼容列表(L);
若所述第二拼图块(720-7)不归属于所述兼容列表(L),则移动所述第二拼图块(720-7)的位置以使得所述距离(D)大于所述预定阈值(Th);
其中,所述兼容列表(L)包括可连接到所述输入连接端的拼图块的共同属性,所述共同属性包括拼图块的功能、拼图块的分类、拼图块的适于场景、拼图块的输入/输出连接端的数目、拼图块的名称、拼图块的开发者中至少之一。
2.如权利要求1所述的编程方法,还包括:
接收来自所述用户设备(UD)的编译请求,所述编译请求包括基于所述用户界面(P-UI)生成的拼图数据(330);
对所述拼图数据(330)进行解析并生成与之对应的代码(Code);
对所述代码(Code)进行编译,以生成能够由所述控制器(C)运行的可执行文件(340);将所述可执行文件(340)发送到所述用户设备(UD)。
3.如权利要求1所述的编程方法,其中,所述兼容列表(L)包括可连接到所述输入连接端的拼图块的名称。
4.如权利要求1所述的编程方法,其中,所述兼容列表(L)包括可连接到所述输入连接端的拼图块的功能分类,其中,同一功能分类中的拼图块的输出连接端可以连接到所述输入连接端。
5.如权利要求1所述的编程方法,还包括:
获取彼此邻近的第一拼图块(720-6)的输入连接端(724-6)与第二拼图块(720-7)的输出连接端(722-7)的各自数据类型;
判断所获取的两个数据类型是否一致;
若不一致,则移动所述第二拼图块(720-7)的位置以使得所述距离(D)大于所述预定阈值(Th)。
6.如权利要求1或2所述的编程方法,其中,所述编程用户界面(P-UI)在由所述网页浏览器呈现时还包括:
提供一个关联拼图块(820),在其第一位置(A)和第二位置(B)上可分别设置有一个多选一控件(826,828),且在所述第二位置(B)处的所述多选一控件(828)的选项与所述第一位置(A)处的多选一控件的选项相关联;
截获对所述第一位置(A)处多选一控件(826)中选项进行更新的事件,以及获取所述更新后的选项;
根据所述更新后的选项,修改所述第二位置(B)处的多选一控件的可选项。
7.如权利要求6所述的编程方法,其中,所述根据所述更新后的选项,修改所述第二位置(B)处的多选一控件的可选项的步骤包括:
删除所述第二位置(B)处的原始多选一控件(828);
基于所述更新后的选项,生成一个新的多选一控件(829)且在所述第二位置(B)处呈现,其中,所述新的多选一控件的可选项与所述第一位置(A)处多选一控件更新后的选项相适应。
8.如权利要求1或2所述的编程方法,其中,所述编程用户界面(P-UI)在由所述网页浏览器呈现时还包括:
提供一个独立工作区,用于构造一个自定义封装块;
在所述独立工作区内提供一个封装拼图块,其输入连接端的个数和属性、拼图块的内部逻辑、以及其输出连接端的个数、类型中任一均可进行配置。
9.一种为楼宇中控制器提供编程工具的服务器,包括:
一个或多个存储器,其存储有一个或多个资源文件,所述资源文件在一个网页浏览器上渲染后能够呈现出一个编程用户界面(P-UI);
一个或多个处理器,其被配置成响应于来自一个用户设备(UD)的网页浏览器的访问请求,而将所述资源文件作为响应发送给所述网页浏览器;
其中,所述编程用户界面(P-UI)在由所述用户设备(UD)上的网页浏览器(WEB-B)呈现时所述编程用户界面(P-UI):
提供可操控的至少两个拼图块(420),每个拼图块(420)代表能够由所述控制器(C)执行的一个或一组指令,每个拼图块(420)具有至少一个输入连接端(424)和/或至少一个输出连接端(422),其中每个所述输入连接端(424)为所述拼图块(420)的一个凹口或开口,每个所述输出连接端(422)为所述拼图块(420)的一个突出部;
当两个拼图块彼此兼容时,一个拼图块(420-1)的输入连接端与另一个拼图块(420-2)的输出连接端能够相互啮合连接(430);
其中,所述编程用户界面(P-UI)在由所述网页浏览器上呈现时还包括:
获取彼此邻近的第一拼图块(720-6)的输入连接端(724-6)与第二拼图块(720-7)的输出连接端(722-7)之间的距离(D);
若所述距离(D)小于一个预定的阈值(Th),则获取所述第一拼图块(720-6)的输入连接端(724-6)的一个兼容列表(L);
若所述第二拼图块(720-7)不归属于所述兼容列表(L),则移动所述第二拼图块(720-7)的位置以使得所述距离(D)大于所述预定阈值(Th);
其中,所述兼容列表(L)包括可连接到所述输入连接端的拼图块的共同属性,所述共同属性包括拼图块的功能、拼图块的分类、拼图块的适于场景、拼图块的输入/输出连接端的数目、拼图块的名称、拼图块的开发者中至少之一。
10.如权利要求9所述的服务器,其中,所述一个或多个处理器被配置成:
接收来自所述用户设备(UD)的编译请求,所述编译请求包括基于所述用户界面(P-UI)生成的拼图数据(330);
对所述拼图数据(330)进行解析并生成与之对应的代码(Code);
对所述代码(Code)进行编译,以生成能够由所述控制器(C)运行的可执行文件(340);
将所述可执行文件(340)发送到所述用户设备(UD)。
11.如权利要求9或10所述的服务器,其中,所述编程用户界面(P-UI)在由所述网页浏览器呈现时还包括:
提供一个关联拼图块(820),在其第一位置(A)和第二位置(B)上可分别设置有一个多选一控件(826,828),且在所述第二位置(B)处的所述多选一控件(828)的选项与所述第一位置(A)处的多选一控件的选项相关联;
截获对所述第一位置(A)处多选一控件(826)中选项进行更新的事件,以及获取所述更新后的选项;
根据所述更新后的选项,修改所述第二位置(B)处的多选一控件的可选项。
12.如权利要求9或10所述的服务器,其中,所述编程用户界面(P-UI)在由所述网页浏览器呈现时还包括:
提供一个独立工作区,用于构造一个自定义封装块;
在所述独立工作区内提供一个封装拼图块,其输入连接端的个数和属性、拼图块的内部逻辑、以及其输出连接端的个数、类型中任一均可进行配置。
CN201610509471.4A 2016-06-30 2016-06-30 楼宇中控制器的编程方法及提供控制器编程工具的服务器 Active CN107561950B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610509471.4A CN107561950B (zh) 2016-06-30 2016-06-30 楼宇中控制器的编程方法及提供控制器编程工具的服务器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610509471.4A CN107561950B (zh) 2016-06-30 2016-06-30 楼宇中控制器的编程方法及提供控制器编程工具的服务器

Publications (2)

Publication Number Publication Date
CN107561950A CN107561950A (zh) 2018-01-09
CN107561950B true CN107561950B (zh) 2020-11-27

Family

ID=60969969

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610509471.4A Active CN107561950B (zh) 2016-06-30 2016-06-30 楼宇中控制器的编程方法及提供控制器编程工具的服务器

Country Status (1)

Country Link
CN (1) CN107561950B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20190310836A1 (en) * 2018-04-10 2019-10-10 Johnson Controls Technology Company Systems and methods for automated controller provisioning

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1324495A1 (en) * 2001-12-28 2003-07-02 Fujitsu Limited Programmable logic device with ferrroelectric configuration memories
WO2007137145A2 (en) * 2006-05-17 2007-11-29 Newsilike Media Group, Inc Certificate-based search
CN102393820A (zh) * 2011-11-09 2012-03-28 国电南瑞科技股份有限公司 一种楼宇监控系统控制逻辑的实现方法
WO2013049007A1 (en) * 2011-09-30 2013-04-04 Siemens Aktiengesellschaft Automated discovery and generation of hierarchies for building automation and control network objects
CN103197929A (zh) * 2013-03-25 2013-07-10 中国科学院软件研究所 一种面向儿童的图形化编程系统和方法
CN105511860A (zh) * 2015-11-30 2016-04-20 大连文森特软件科技有限公司 在线图形化编程系统
CN105677448A (zh) * 2016-03-19 2016-06-15 张著岳 基于网页的可编程控制器的在线仿真方法及系统

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101566955A (zh) * 2008-04-21 2009-10-28 安捷伦科技有限公司 多线程化图标编程系统
WO2011091323A1 (en) * 2010-01-21 2011-07-28 Qst Holdings, Llc A method and apparatus for a general-purpose, multiple-core system for implementing stream-based computations
CN105467858B (zh) * 2015-12-01 2018-05-08 西安电子科技大学 一种机器人控制程序图形化集成开发环境

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1324495A1 (en) * 2001-12-28 2003-07-02 Fujitsu Limited Programmable logic device with ferrroelectric configuration memories
WO2007137145A2 (en) * 2006-05-17 2007-11-29 Newsilike Media Group, Inc Certificate-based search
WO2013049007A1 (en) * 2011-09-30 2013-04-04 Siemens Aktiengesellschaft Automated discovery and generation of hierarchies for building automation and control network objects
CN102393820A (zh) * 2011-11-09 2012-03-28 国电南瑞科技股份有限公司 一种楼宇监控系统控制逻辑的实现方法
CN103197929A (zh) * 2013-03-25 2013-07-10 中国科学院软件研究所 一种面向儿童的图形化编程系统和方法
CN105511860A (zh) * 2015-11-30 2016-04-20 大连文森特软件科技有限公司 在线图形化编程系统
CN105677448A (zh) * 2016-03-19 2016-06-15 张著岳 基于网页的可编程控制器的在线仿真方法及系统

Also Published As

Publication number Publication date
CN107561950A (zh) 2018-01-09

Similar Documents

Publication Publication Date Title
EP3798817B1 (en) User interface logical and execution view navigation and shifting
US10281894B2 (en) Binding graphic elements to controller data
US10268185B2 (en) Multiple deployment of applications with multiple configurations in an industrial automation environment
US8185871B2 (en) System for configuring a process control environment
EP2804058B1 (en) System and method for emulation of an automation control system
US6078320A (en) System for configuring a process control environment
EP3798757B1 (en) System and method for developing industrial applications
JP2019079509A (ja) プロセスプラント内のディスプレイナビゲーション階層を構成及び提示するためのシステム及び方法
US8850335B2 (en) Strategy editor supporting automatic designation of displayed line style based upon a connection data type
JP2009009560A (ja) 図形要素を用いてプロセスコントロール環境を構成するためのシステム
JP2018106687A (ja) 動的装置記述言語メニュー用装置及び方法
CN111026387B (zh) 工业服务器的vplc配置方法、装置及可读存储介质
US8793668B2 (en) Protocol independent programming environment
US20140222181A1 (en) Automatically updating graphical symbols in a control loop strategy diagram
US11775142B2 (en) Preferential automation view curation
JP2018055565A (ja) アプリケーション開発環境提供システム、アプリケーション開発環境提供方法、アプリケーション開発環境提供プログラム、および情報処理装置
CN107561950B (zh) 楼宇中控制器的编程方法及提供控制器编程工具的服务器
US20240103852A1 (en) Presentation design dynamic generation from data model server
EP4307105A1 (en) Extensible profiles for industrial control modules
EP4345602A1 (en) Presentation design to automation device binding
KR20090038708A (ko) 제어시스템 개발을 위한 툴생성장치
CN104950715A (zh) 用于管理和配置自动化系统的现场设备的方法和装置(i)

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20191114

Address after: Zurich

Applicant after: Siemens Switzerland Ltd.

Address before: Zurich

Applicant before: Siemens Switzerland Ltd.

Applicant before: Siemens (China) Co., Ltd.

GR01 Patent grant
GR01 Patent grant