天天看點

《實時控制軟體設計》之Automation Studio開發環境

Automation Studio是貝加萊公司的控制軟體開發平台,軟體可運作在貝加萊的基于PC的控制器上,基于Automation Studio我們可建構一個完整的控制軟體建構、測試和仿真運作平台。本文以一個簡單的例子介紹用Automation Studio進行基于C++的控制軟體開發環境搭建和仿真運作。

  • 我們的目标:

1)用C++寫一個使用者程式,該程式被實時控制器的一個實時任務所調用,每100ms執行一次。

2)用組态工具畫一個可視化界面,把使用者程式中的一些變量和界面上的控件關聯起來。

3)把C++程式和可視化界面都下載下傳到具體的硬體中去,并運作。

為達到上述目的,在一個實際項目開發中(以貝加萊系統為例),我們通常需要三個硬體平台:

1)一台裝有windows的筆記本,安裝好Automation Studio開發軟體,工程師用于軟體開發。

2)一台安裝在現場的實時控制器,裝有實時作業系統(Vxworks)。

3)一塊安裝在現場的觸摸屏作為人機界面,實作操作的輸入和狀态顯示。

在教學過程中為每個人都配齊上述硬體成本比較高,我們采用變通的方法,在我們的筆記本電腦上,安裝一個ARSim軟體,來模拟一個實際的控制器硬體,再安裝一個VNC Viewer軟體,用來模拟一塊觸摸屏。它們之間通過TCP/IP通信,因為都在一台電腦上,是以都通過本地IP位址127.0.0.1來通路。

軟體安裝

Automation Studio軟體可到貝加萊官網上進行下載下傳,試用期為30天,本文所用版本為v4.2.1,ARSim仿真軟體已包含在内。。

VNC Viewer可采用各種開源軟體,比如Real VNC

建立新工程

打開Automation Studio,點選File -> New Project,在對話框中選擇新工程路徑并命名工程名,我們建立一個rtcsd1的新工程,如下圖所示。

《實時控制軟體設計》之Automation Studio開發環境

主界面如下圖所示

《實時控制軟體設計》之Automation Studio開發環境

接下來我們要添加一個C++程式,輕按兩下右側的Program圖示建立一個C++程式,将程式名修改為Program_cpp,如下圖所示

《實時控制軟體設計》之Automation Studio開發環境

點選Cyclic.cpp,添加自己的代碼如下:

#include <bur/plctypes.h>
#ifdef _DEFAULT_INCLUDES
	#include <AsDefault.h>
#endif


#include "complex.h"

using namespace std;
unsigned long bur_heap_size = 0xFFFF;

complex c1(20, 10);
complex c2(1,1);
   
void _CYCLIC ProgramCyclic(void)
{
	
	c1 = c1 + c2;
	x = c1.real();
	y = c1.imag();

}

           

這裡我們執行個體化兩個Complex複數對象,Complex類是我們之前自己編寫的,定義在頭檔案complex.h裡,我們把complex.h檔案拷貝到Program_cpp程式的子目錄中,并在Cyclic.cpp檔案裡添加:

#include "complex.h"
           

在函數ProgramCyclic()中,我們把複數c1的實部和虛部分别賦給變量x和y,我們把x和y的定義放在單獨的變量定義檔案Variables.var中,如下圖所示:

《實時控制軟體設計》之Automation Studio開發環境

C++程式的編寫我們已經完成了,大家注意到,在這段程式裡,沒有main()函數,這是因為通常我們編寫的程式生成二進制檔案後,運作時是作為一個獨立的程序被作業系統調用的。而在這裡,函數ProgramCyclic()前面有一個修飾關鍵字_CYCLIC,表明這個程式将被控制器實時作業系統的一個周期性實時任務所調用。點選軟體左側工程導航器的Configuration View頁籤,并輕按兩下PC_any下的Cpu.sw檔案,如下圖所示,可以看到實時作業系統有八個周期性任務,我們把VisuProgram_cpp程式放入第一個周期任務,循環周期為100ms。

《實時控制軟體設計》之Automation Studio開發環境

C++程式的編寫我們告一段落,下面我們來設計可視化人機界面,首先添加一個可視化對象VC4 Visualisation,命名為Visu

《實時控制軟體設計》之Automation Studio開發環境

點選軟體左側工程導航器的PhysicalView頁籤,導航器顯示的樹狀結構是我們的仿真控制器硬體ARSim的硬體資源,右鍵點選第一個網卡ETH,選擇Configuration,在彈出的界面中,将Visu對象映射到一個VNC Server中去,如下圖所示。

《實時控制軟體設計》之Automation Studio開發環境

編輯Visu畫面,建立4個控件,如下圖所示:

《實時控制軟體設計》之Automation Studio開發環境

接下來我們把兩個顯示控件與變量x,y連結起來,如下圖所示

《實時控制軟體設計》之Automation Studio開發環境

點選菜單Project -> Build Configuration,編譯工程,成功後軟體詢問是否把該工程下載下傳到控制器硬體(這裡是仿真控制器ARSim)中去,點選Transfer按鈕進行下載下傳,如下圖所示。

《實時控制軟體設計》之Automation Studio開發環境

下載下傳完成後,程式将自動在ARSim中運作,現在我們需要通過VNC Viewer浏覽人機界面,輕按兩下VNC Viewer,輸入本地IP:127.0.0.1,将看到如下的運作畫面。

《實時控制軟體設計》之Automation Studio開發環境

x和y的值實時顯示在畫面上,并且每個100ms增加1,這個和我們的程式設計和配置是一緻的。

更詳細的操作介紹,可參見貝加萊文檔。當完成上述練習後,就對Automation Studio的基本開發環境有了初步了解,可進一步調用STL、貝加萊提供的功能庫以及自定義庫來完成C++軟體開發。

上一篇: OSGB資料壓縮
下一篇: cbp2make使用