工控設備調試需要可視化的界面上位機來調試下位機的傳感器,電機,單步動作等.上位機調試軟件可以是工業觸摸屏或者是工控機windows的mfc winform之類的軟件.下位機可以是單片機工控電路板或者是PLC。這種上位機和下位機的關系與PC與服務器的關系類似.PC與服務器的軟件架構有C/S,B/S兩種,上位機(服務器)和下位機(服務器)軟件架構也有這兩種.
- C/S架構
C/S架構在服務器和PC端都要寫程序和維護。QQ之類的軟件就是這種架構。對于PC端程序開發,開發者需要學習VS/QT,熟悉C++或者C#,串口網絡編程,多線程UI美化等,學習成本相當高,招人也不好招聘。對于每個項目都是拖拽一些按鈕編輯框到界面,在事件處理函數發送串口網絡數據給下位機.
- B/S架構
B/S架構只要在單片機端寫程序.電機中文名稱,傳感器名稱,動作名稱,參數名稱都寫在單片機軟件,單片機上電初始化時需要將中文名稱和電機傳感器動作編號綁定。PC端瀏覽器軟件連接到單片機后就把名稱和編號獲取過來,然后界面動態繪制按鈕,編輯框等.
單片機代碼:
enum
{
SM_BELT=0, //軸1 皮帶轉動
SM_SUCK, //軸2 吸盤運動步進點
};
enum
{
SN_BELT_ORG=0,
SN_SUCK_ORG,
SN_SUCK_LIMT,
};
enum
{
ACTION_MOVE_BELT=1,
ACTION_RESET_SUCK,
};
//皮帶走動
start(MoveBelt):
l->FindSensor(SM_BELT,1600,SN_BELT_ORG,STEP_OK,STEP_ERROR);
step_error:
l->SetErrorInfo("SM101皮帶電機堵轉丟步-X101");
step_ok:
l->StopSM(SM_BELT);
end_ok
//吸盤復位
start(ResetSuck):
l->FindSensor(SM_SUCK,-9000,SN_SUCK_ORG,STEP_OK,STEP_ERROR);
step_error:
l->SetErrorInfo("SM102吸盤電機堵轉丟步-X102");
step_ok:
l->StopSM(SM_SUCK);
end_ok
void InitApp()
{
//將動作編號1和函數MoveBelt綁定,上位機會繪制一個按鈕,名稱皮帶移動
//當電機按鈕發送數據包給下位機,數據包的參數有1,下位位機收到參數1找到MoveBeltt
//執行
l->AddAction(ACTION_MOVE_BELT,MoveBelt,"皮帶移動");
l->AddAction(ACTION_RESET_SUCK,ResetSuck,"吸盤復位");
//電機
l->AddSMNode(SM_BELT,"SM101皮帶");
l->AddSMNode(SM_SUCK,"SM102吸盤");
l->SetPrjName("臨時測試");
l->SetVersion("V1.1");
}
上面的代碼即完成了下位機的控制邏輯,又在初始化時完成項目的電氣部件及動作信息的顯示.上位機連接后顯示界面如下 :
-
傳感器
+關注
關注
2564文章
52619瀏覽量
763895 -
電機
+關注
關注
143文章
9258瀏覽量
148417 -
工控
+關注
關注
6文章
260瀏覽量
29247 -
下位機
+關注
關注
0文章
95瀏覽量
19072
發布評論請先 登錄
單片機串口模塊調試方法

單片機開發調試應注意的問題
OBG調試接口在單片機中的應用解析

評論