上位機(jī)軟件開發(fā)用哪些軟件(上位機(jī)軟件開發(fā)用哪些軟件做)
本篇文章給大家談?wù)勆衔粰C(jī)軟件開發(fā)用哪些軟件,以及上位機(jī)軟件開發(fā)用哪些軟件做對(duì)應(yīng)的知識(shí)點(diǎn),希望對(duì)各位有所幫助,不要忘了收藏本站喔。
本文目錄一覽:
- 1、藍(lán)牙上位機(jī)app有哪些
- 2、上位機(jī)用什么編程?
- 3、上位機(jī)軟件用什么開發(fā)?
- 4、工控上位機(jī)軟件哪個(gè)好
- 5、寫上位機(jī)程序要學(xué)習(xí)哪些編程軟件
藍(lán)牙上位機(jī)app有哪些
做安卓手機(jī)APP通常使用高端大氣的Android Studio,開發(fā)語言是Java,該開發(fā)IDE就是體積大
學(xué)習(xí)成本高,入手慢,這里給大家推薦一款國產(chǎn)的軟件,體積小,運(yùn)行和編譯速度快。最重要的是編程語言是中文
這個(gè)軟件就是E4A.
本次我將向大家介紹如何使用E4A開發(fā)BLE藍(lán)牙手機(jī)上位機(jī)APP。
當(dāng)然,該軟件自帶了豐富的例子,也提供了一個(gè)BLE例子,大家可以借鑒。
由于沒有提供各種庫的說明文檔和幫助文件,學(xué)這個(gè)軟件可能有經(jīng)過一段摸索,這里我將向大家介紹我在開發(fā)這個(gè)軟件中
獲得的經(jīng)驗(yàn)。
中文編程語言:易語言,采用中文作為關(guān)鍵字,但是編程的語法和思想和C語言是類似的
為了方便理解,這里我結(jié)合單片機(jī)開發(fā)的思路簡單介紹一下
變量要聲明類型
對(duì)象操作的函數(shù)稱為:方法
對(duì)象可觸發(fā)的中斷函數(shù)稱為:事件
對(duì)象可設(shè)置的參數(shù)稱為:屬性
-----------------------------------------------------------------------------------------
好接下來介紹 BLE藍(lán)牙庫
BLE(Bluetooth Low Energe)低功耗藍(lán)牙設(shè)備主要用于智能穿戴和物聯(lián)網(wǎng)。
BLE藍(lán)牙類庫,包含兩種操作:方法和事件
方法:
初始化
置可被發(fā)現(xiàn)
開始搜索
停止搜索
連接設(shè)備
斷開連接
釋放資源
是否可讀
是否可寫
是否可通知
讀取數(shù)據(jù)
寫入數(shù)據(jù)
事件:
創(chuàng)建完畢
發(fā)現(xiàn)設(shè)備
信號(hào)強(qiáng)度改變
發(fā)現(xiàn)服務(wù)
連接狀態(tài)改變
讀取數(shù)據(jù)完畢
通道數(shù)據(jù)改變
由于不存在可見的對(duì)象,因此藍(lán)牙沒有屬性設(shè)置。
了解方法和事件的用法可通過左側(cè)類庫目錄選中對(duì)應(yīng)的條目,在下面的提示信息中查看
例如選中BLE藍(lán)牙庫的方法 初始化 條目后:
方法:初始化()為 邏輯型
分類:BLE藍(lán)牙類庫---BLE藍(lán)牙
注釋:初始化BLE藍(lán)牙設(shè)備,成功返回真,失敗返回假,BLE藍(lán)牙需要安卓4.3以上系統(tǒng)的支持。
另外 事件類似中斷函數(shù),因此在代碼中沒有先后順序,可以根據(jù)易讀的排列順序進(jìn)行排版。
所有的動(dòng)作均屬于觸發(fā)的事件,因此,方法通常在事件里面進(jìn)行調(diào)用。
自己創(chuàng)建的函數(shù),需要自己實(shí)現(xiàn)該函數(shù)的具體過程,因此函數(shù)在這里稱為:過程
不過我們這里做BLE藍(lán)牙APP可以不用到過程。
好了,基本的概念已經(jīng)介紹了,我們可以開始整了。
-----------------------------------------------------------------------------------------
第一步,先根據(jù)我們的需要完成可視化的組件布局,并給添加的組件起上一個(gè)跟操作相關(guān)的名字,在組件的屬性對(duì)話框設(shè)置,同時(shí)可以設(shè)置組件的其他相關(guān)屬性。
?
第二步,使用中需要完成單擊響應(yīng)的,我們可以在設(shè)計(jì)區(qū)直接雙擊組件,即可自動(dòng)在代碼區(qū)生成一個(gè)空的事件(類似單片機(jī)開發(fā)中的中斷處理函數(shù),用于響應(yīng)單擊事件),例如四個(gè)方向鍵的單擊事件。以下代碼我已經(jīng)填充了單擊后執(zhí)行的藍(lán)牙方法:寫入數(shù)據(jù),即發(fā)數(shù)據(jù)給連接到手機(jī)的藍(lán)牙模塊。
事件 按鈕上.被單擊()
BLE藍(lán)牙1.寫入數(shù)據(jù)(服務(wù)UUID,通道UUID,文本到字節(jié)("上\n","GBK"))
結(jié)束 事件
事件 按鈕下.被單擊()
BLE藍(lán)牙1.寫入數(shù)據(jù)(服務(wù)UUID,通道UUID,文本到字節(jié)("下\n","GBK"))
結(jié)束 事件
事件 按鈕左.被單擊()
BLE藍(lán)牙1.寫入數(shù)據(jù)(服務(wù)UUID,通道UUID,文本到字節(jié)("左\n","GBK"))
結(jié)束 事件
事件 按鈕右.被單擊()
BLE藍(lán)牙1.寫入數(shù)據(jù)(服務(wù)UUID,通道UUID,文本到字節(jié)("右\n","GBK"))
結(jié)束 事件
第三步,完成主窗口的創(chuàng)建工作,因?yàn)槲覀円褂盟{(lán)牙庫,所以我們可以在APP啟動(dòng)后就申請(qǐng)使用藍(lán)牙的權(quán)利,并初始化一個(gè)藍(lán)牙對(duì)象。
另外就是要實(shí)現(xiàn)軟件退出的操作,所以我們可以設(shè)置一個(gè)退出的按鈕,實(shí)現(xiàn)結(jié)束程序。內(nèi)容如下。
事件 主窗口.創(chuàng)建完畢()
'安卓6.0以上的系統(tǒng)需要?jiǎng)討B(tài)申請(qǐng)權(quán)限,否則app可能無法正常運(yùn)行
如果 權(quán)限操作1.取系統(tǒng)版本號(hào)()=23 則
權(quán)限操作1.申請(qǐng)全部權(quán)限()
結(jié)束 如果
變量 結(jié)果 為 邏輯型
結(jié)果 = BLE藍(lán)牙1.初始化()
彈出提示("初始化結(jié)果:" 結(jié)果)
結(jié)束 事件
事件 權(quán)限操作1.申請(qǐng)完畢(權(quán)限數(shù)組 為 文本型(),申請(qǐng)結(jié)果 為 整數(shù)型())
'可以把需要特殊權(quán)限的代碼寫在此處,當(dāng)申請(qǐng)權(quán)限成功后再執(zhí)行相關(guān)代碼
結(jié)束 事件
事件 圖片框_返回.被單擊()
結(jié)束程序()
結(jié)束 事件
第四步,實(shí)現(xiàn)藍(lán)牙設(shè)備的搜索,從搜索到的藍(lán)牙信號(hào)中選出我們要的那個(gè),另外在搜索的過程中顯示信號(hào)的強(qiáng)度
通過按鈕單擊實(shí)現(xiàn)搜索與停止搜索,并設(shè)定搜索時(shí)間為10秒,10秒后自動(dòng)停止搜索。
通過發(fā)現(xiàn)設(shè)備事件,讀取搜到的設(shè)備,并匹配名稱是否為自己要找的信號(hào)。這里我內(nèi)置了信號(hào)名稱,也可以通過一個(gè)輸入框,實(shí)現(xiàn)敏感信號(hào)名稱的修改
如果發(fā)現(xiàn)的設(shè)備名稱是指定名字的信號(hào),就將名稱和地址寫入到列表框的項(xiàng)目,同時(shí)給項(xiàng)目做個(gè)編號(hào)和標(biāo)記,方便后面取出
使用信號(hào)強(qiáng)度改變事件讀取搜索中的信號(hào)強(qiáng)度,我們只讀取感興趣的那個(gè)名字的信號(hào)。
當(dāng)列表中出現(xiàn)我們感興趣的那個(gè)信號(hào)名稱和地址時(shí)候,我們可以單擊列表中的該項(xiàng),觸發(fā)連接設(shè)備,實(shí)現(xiàn)手機(jī)與藍(lán)牙模塊的連接。
同時(shí)通過顏色和文字提示是否連接上或者斷開了。這可以使用BLE藍(lán)牙對(duì)象的連接狀態(tài)改變事件實(shí)現(xiàn)。
事件 搜索按鈕.被單擊()
如果 搜索按鈕.標(biāo)題 = "開始搜索" 則
位置傳感器1.開始監(jiān)測()
BLE藍(lán)牙1.開始搜索()
時(shí)鐘1.時(shí)鐘周期 = 10*1000
搜索按鈕.標(biāo)題 = "停止搜索"
否則
BLE藍(lán)牙1.停止搜索()
時(shí)鐘1.時(shí)鐘周期 = 0
搜索按鈕.標(biāo)題 = "開始搜索"
結(jié)束 如果
結(jié)束 事件
事件 時(shí)鐘1.周期事件()
BLE藍(lán)牙1.停止搜索()
搜索按鈕.標(biāo)題 = "開始搜索"
時(shí)鐘1.時(shí)鐘周期 = 0
結(jié)束 事件
事件 BLE藍(lán)牙1.發(fā)現(xiàn)設(shè)備(名稱 為 文本型,地址 為 文本型,MajorID 為 整數(shù)型,MinorID 為 整數(shù)型,配對(duì)狀態(tài) 為 整數(shù)型)
如果 名稱 = "BT24" 則
'屏蔽掉沒有名稱的藍(lán)牙設(shè)備
彈出提示("發(fā)現(xiàn)設(shè)備")
列表框1.添加項(xiàng)目("名稱:" 名稱 "\n地址:" 地址)
列表框1.置項(xiàng)目標(biāo)記(列表框1.取項(xiàng)目數(shù)()-1,地址)
結(jié)束 如果
結(jié)束 事件
事件 BLE藍(lán)牙1.信號(hào)強(qiáng)度改變(名稱 為 文本型,地址 為 文本型,信號(hào)強(qiáng)度 為 整數(shù)型)
如果 名稱 = "BT24" 則
列表框1.置項(xiàng)目內(nèi)容(0,"名稱:" 名稱 "\n地址:" 地址 "\n信號(hào):" 信號(hào)強(qiáng)度)
結(jié)束 如果
結(jié)束 事件
事件 列表框1.表項(xiàng)被單擊(項(xiàng)目索引 為 整數(shù)型)
設(shè)備地址 = 列表框1.取項(xiàng)目標(biāo)記(項(xiàng)目索引)
BLE藍(lán)牙1.連接設(shè)備(設(shè)備地址)
'BLE藍(lán)牙1.連接設(shè)備(列表框1.取項(xiàng)目標(biāo)記(項(xiàng)目索引))
彈出提示("正在連接")
連接狀態(tài).標(biāo)題 = "正在連接"
結(jié)束 事件
事件 BLE藍(lán)牙1.連接狀態(tài)改變(狀態(tài) 為 整數(shù)型)
如果 狀態(tài) = 1 則
連接狀態(tài).標(biāo)題 = "已連接"
連接狀態(tài).背景顏色 = 綠色
否則
連接狀態(tài).標(biāo)題 = "已斷開"
連接狀態(tài).背景顏色 = 紅色
結(jié)束 如果
結(jié)束 事件
第五步,通過服務(wù)提供的通道進(jìn)行數(shù)據(jù)傳輸
連接上藍(lán)牙模塊后,就要建立通信的通道了,這需要通過服務(wù)來完成,因此我們要對(duì)連接的藍(lán)牙模塊索取服務(wù)的操作
這稱為發(fā)現(xiàn)服務(wù) 事件,由于藍(lán)牙模塊中有多個(gè)服務(wù)可選,我們要找到我們可以進(jìn)行通信的那個(gè),這個(gè)通常在模塊的手冊也給了相關(guān)的短ID
稱為服務(wù)UUID,每個(gè)服務(wù)又含有若干個(gè)通道UUID。因?yàn)槟K的出廠設(shè)定,只有能用的那個(gè)服務(wù)才能通信,其他的服務(wù)是不可完全可讀寫的
在產(chǎn)生BLE藍(lán)牙的發(fā)現(xiàn)服務(wù)事件后,會(huì)自動(dòng)獲取到服務(wù)的所有信心,裝載到一個(gè)名字叫:服務(wù)信息的集合里,這個(gè)集合類型你就當(dāng)類似C語言結(jié)構(gòu)體數(shù)組的東西。
接下來為了驗(yàn)證每個(gè)服務(wù)是否可讀寫,就要一個(gè)一個(gè)測試,這類似,從一個(gè)結(jié)構(gòu)體數(shù)組先一個(gè)一個(gè)讀出來數(shù)組的元素,在數(shù)組元素的結(jié)構(gòu)體里取結(jié)構(gòu)體成員,
這就需要用到兩層的for循環(huán)了,E4A 的for循環(huán)用一對(duì) 判斷循環(huán)首---判斷循環(huán)尾,進(jìn)行包圍。為了方便記,你可以給循環(huán)的變量起名字:i,j
然后就是測試對(duì)應(yīng)的服務(wù)與通道是否可讀,可寫,可通知。如果三者都滿足,那就是我們要找的通道,實(shí)際上,在多組的服務(wù)中,只有廠家指定的那組是
滿足這三個(gè)條件的。其他的一般只能滿足可讀這一條。
找到合適的服務(wù)與通道后,想實(shí)現(xiàn)數(shù)據(jù)的接收,要執(zhí)行 讀取數(shù)據(jù)的方法,如果直接讀,那么系統(tǒng)沒有準(zhǔn)備好呢,會(huì)導(dǎo)致讀失敗,后面就容易卡死。
這里就像初始化完單片機(jī),要給系統(tǒng)以反應(yīng)時(shí)間,等待個(gè)幾百毫秒,然后再進(jìn)行后面的操作一樣。
這里就要用到定時(shí)器了,找到服務(wù)與通道后執(zhí)行一個(gè)1000ms定時(shí)器的啟動(dòng)操作,在定時(shí)器計(jì)數(shù)滿了之后的事件中執(zhí)行讀取數(shù)據(jù)的方法,
同時(shí)接收框顯示服務(wù)和通道的ID,并關(guān)閉定時(shí)器。
事件 BLE藍(lán)牙1.發(fā)現(xiàn)服務(wù)(服務(wù)信息 為 集合)
如果 服務(wù)信息.取項(xiàng)目總數(shù)() 0 則
退出
結(jié)束 如果
變量 i 為 整數(shù)型
變量 j 為 整數(shù)型
變量 信息數(shù)組 為 文本型()
i = 0
判斷循環(huán)首 i 服務(wù)信息.取項(xiàng)目總數(shù)()
信息數(shù)組 = 服務(wù)信息.取項(xiàng)目(i)
j = 0
判斷循環(huán)首 j 取數(shù)組成員數(shù)(信息數(shù)組)
如果 j 0 則
如果 BLE藍(lán)牙1.是否可讀(信息數(shù)組(0),信息數(shù)組(j)) = 真 且 BLE藍(lán)牙1.是否可寫(信息數(shù)組(0),信息數(shù)組(j)) =真 且 BLE藍(lán)牙1.是否可通知(信息數(shù)組(0),信息數(shù)組(j)) =真 則
服務(wù)UUID = 信息數(shù)組(0)
通道UUID = 信息數(shù)組(j)
'BLE藍(lán)牙1.讀取數(shù)據(jù)(服務(wù)UUID,通道UUID)
'接收框.內(nèi)容 = 服務(wù)UUID "\n" 通道UUID
時(shí)鐘2.時(shí)鐘周期 = 1000
結(jié)束 如果
結(jié)束 如果
j = j + 1
判斷循環(huán)尾
i = i + 1
判斷循環(huán)尾
結(jié)束 事件
事件 時(shí)鐘2.周期事件()
BLE藍(lán)牙1.讀取數(shù)據(jù)(服務(wù)UUID,通道UUID)
接收框.內(nèi)容 = 服務(wù)UUID "\n" 通道UUID
時(shí)鐘2.時(shí)鐘周期 = 0
結(jié)束 事件
執(zhí)行完讀取操作后,系統(tǒng)會(huì)在通道內(nèi)有數(shù)據(jù)發(fā)送來的時(shí)候觸發(fā)通道數(shù)據(jù)改變的事件,在該事件中我們讀取數(shù)據(jù),另外也會(huì)觸發(fā)讀取完畢的事件
發(fā)送數(shù)據(jù)是通過單擊發(fā)送按鈕觸發(fā)寫入數(shù)據(jù)方法實(shí)現(xiàn)的,當(dāng)完成寫入后可通過寫入數(shù)據(jù)完畢事件知道是否發(fā)送成功。
事件 BLE藍(lán)牙1.讀取數(shù)據(jù)完畢(結(jié)果 為 整數(shù)型,服務(wù)UUID 為 文本型,通道UUID 為 文本型,數(shù)據(jù) 為 字節(jié)型())
如果 結(jié)果 = 1 則
彈出提示("讀取數(shù)據(jù)成功:" 通道UUID "\n數(shù)據(jù):" 字節(jié)集到十六進(jìn)制(數(shù)據(jù)))
否則
彈出提示("讀取數(shù)據(jù)失?。? 通道UUID "\n數(shù)據(jù):" 字節(jié)集到十六進(jìn)制(數(shù)據(jù)))
結(jié)束 如果
結(jié)束 事件
事件 BLE藍(lán)牙1.通道數(shù)據(jù)改變(服務(wù)UUID 為 文本型,通道UUID 為 文本型,數(shù)據(jù) 為 字節(jié)型())
彈出提示("通道數(shù)據(jù)改變" 通道UUID "\n數(shù)據(jù):" 字節(jié)集到十六進(jìn)制(數(shù)據(jù)))
接收框.加入文本(字節(jié)到文本(數(shù)據(jù),"GBK"))
結(jié)束 事件
事件 發(fā)送按鈕.被單擊()
BLE藍(lán)牙1.寫入數(shù)據(jù)(服務(wù)UUID,通道UUID,文本到字節(jié)(發(fā)送框.內(nèi)容,"GBK"))
結(jié)束 事件
事件 BLE藍(lán)牙1.寫入數(shù)據(jù)完畢(結(jié)果 為 整數(shù)型)
如果 結(jié)果 = 1 則
彈出提示("寫入數(shù)據(jù)成功")
否則
彈出提示("寫入數(shù)據(jù)失敗")
結(jié)束 如果
結(jié)束 事件
其他的操作可在以下完整代碼中查看
變量 服務(wù)UUID 為 文本型
變量 通道UUID 為 文本型
變量 設(shè)備地址 為 文本型
事件 主窗口.創(chuàng)建完畢()
'安卓6.0以上的系統(tǒng)需要?jiǎng)討B(tài)申請(qǐng)權(quán)限,否則app可能無法正常運(yùn)行
如果 權(quán)限操作1.取系統(tǒng)版本號(hào)()=23 則
權(quán)限操作1.申請(qǐng)全部權(quán)限()
結(jié)束 如果
變量 結(jié)果 為 邏輯型
結(jié)果 = BLE藍(lán)牙1.初始化()
彈出提示("初始化結(jié)果:" 結(jié)果)
結(jié)束 事件
事件 權(quán)限操作1.申請(qǐng)完畢(權(quán)限數(shù)組 為 文本型(),申請(qǐng)結(jié)果 為 整數(shù)型())
'可以把需要特殊權(quán)限的代碼寫在此處,當(dāng)申請(qǐng)權(quán)限成功后再執(zhí)行相關(guān)代碼
結(jié)束 事件
事件 圖片框_返回.被單擊()
結(jié)束程序()
結(jié)束 事件
事件 搜索按鈕.被單擊()
如果 搜索按鈕.標(biāo)題 = "開始搜索" 則
位置傳感器1.開始監(jiān)測()
BLE藍(lán)牙1.開始搜索()
時(shí)鐘1.時(shí)鐘周期 = 10*1000
搜索按鈕.標(biāo)題 = "停止搜索"
否則
BLE藍(lán)牙1.停止搜索()
時(shí)鐘1.時(shí)鐘周期 = 0
搜索按鈕.標(biāo)題 = "開始搜索"
結(jié)束 如果
結(jié)束 事件
事件 時(shí)鐘1.周期事件()
BLE藍(lán)牙1.停止搜索()
搜索按鈕.標(biāo)題 = "開始搜索"
時(shí)鐘1.時(shí)鐘周期 = 0
上位機(jī)用什么編程?
上位機(jī)的編程語言很多啊,VC,C++,C#,VB,VB。NET等等,關(guān)鍵是看你熟悉哪種編程語言了,這幾種語言都是面向?qū)ο蟮木幊陶Z言。VB入門比較容易,而且比較容易掌握,VB。NET是VB的升級(jí)版本,現(xiàn)在也比較流行。跟C有關(guān)的都需要有C語言的基礎(chǔ)。
如果對(duì)上位機(jī)的控制要求不是很高的話,或者說對(duì)技術(shù)先進(jìn)性上沒有太高要求,建議用VB,比較好掌握!
擴(kuò)展資料:
幾種程序語言的區(qū)別:java語言、python語言、C語言、PHP語言。
1、java語言
java語言曾一度家喻戶曉,如今雖然潮流已過,但java跨平臺(tái)的優(yōu)勢以及強(qiáng)大的類庫著實(shí)不容小覷,其他語言很難超越,java衍生除了非常多周邊產(chǎn)品(如jsp),非常多的開源系統(tǒng)都是基于java(hadoop、hive、hbase、lucene等)。
java和c一樣也是編譯執(zhí)行的語言,區(qū)別在于java編譯出的字節(jié)碼文件運(yùn)行在一層java虛擬機(jī)之上,而虛擬機(jī)可以架設(shè)在各種操作系統(tǒng)上,所以java也就有了跨平臺(tái)的優(yōu)勢,一處編譯多處執(zhí)行。
2、python語言
python的強(qiáng)大在于它的多功能性,既是解釋執(zhí)行,又可以編譯成文件,既是腳本語言,又具有面向?qū)ο蟮乃行再|(zhì),如今python開源的類庫已經(jīng)非常強(qiáng)大了,什么功能都有,python也成了大數(shù)據(jù)方向必要的工具。
3、C語言
C語言是編譯執(zhí)行的語言,是萬物之源。linux下常用的編譯器是gcc,c語言源代碼可以直接被編譯成可執(zhí)行程序(機(jī)器碼),被稱為萬物之源是因?yàn)楦鞣N語言都是用C語言寫的,如java、php、python等。
4、PHP語言
PHP巨大的生態(tài)系統(tǒng)使得在未來幾年里全世界需要大量的開發(fā)人員對(duì)其提供支持。排名前三的內(nèi)容管理系統(tǒng)-WordPress、Drupal和Joomla都是使用PHP構(gòu)建的,而且迄今大概有80%的網(wǎng)站運(yùn)行在PHP之上。
上位機(jī)軟件用什么開發(fā)?
熟練使用Mysql,VS,SQL Server,XTML等軟件開發(fā)工具;
熟悉USB、串口、以太網(wǎng)、CAN等數(shù)據(jù)采集;
工控上位機(jī)軟件哪個(gè)好
新漢工控機(jī)也不錯(cuò)!
在機(jī)緣巧合下,對(duì)“工業(yè)上位機(jī)軟件”有了一些初步的了解。在這里和大家分享一下。注意本節(jié)的內(nèi)容還不夠?qū)I(yè)全面,只適合對(duì)“工控軟件”進(jìn)行一個(gè)初步的了解。
工業(yè)“自動(dòng)化”控制系統(tǒng)的組成
在工業(yè)生產(chǎn)過程中,最重要的是安全,其次是穩(wěn)定。工業(yè)生產(chǎn)環(huán)境中可以常見大如“吊車”般的設(shè)備、有毒氣體、強(qiáng)堿、強(qiáng)酸、幾千度的高溫、易燃易爆氣體、高壓水蒸氣。所以容不得半點(diǎn)錯(cuò)誤,出錯(cuò)就意味著要死人,因此安全是第一位的。然后是穩(wěn)定。為啥穩(wěn)定這么重要呢。工業(yè)生產(chǎn)過程和我們家用設(shè)備不一樣。工業(yè)生產(chǎn)是24小時(shí)不間斷的。工人是輪班倒休的,但是生產(chǎn)設(shè)備是常年不停的運(yùn)行的。如果生產(chǎn)過程有一個(gè)設(shè)備出現(xiàn)故障,就會(huì)影響整個(gè)生產(chǎn)流程的進(jìn)度和原料的浪費(fèi),要再次重啟整個(gè)生產(chǎn)流程代價(jià)很大。生產(chǎn)過程停止1小時(shí),就意味著最低幾十萬的損失,嚴(yán)重的情況意味著幾百萬的損失。
因此,用在“工業(yè)”中的自動(dòng)化設(shè)備和軟件設(shè)備,就有一個(gè)共同的特點(diǎn)。即“功能不必高級(jí),夠用就行,關(guān)鍵要求穩(wěn)定”。
因此,在工業(yè)中,實(shí)現(xiàn)自動(dòng)化的組合是:PLC+Modbus協(xié)議+組態(tài)軟件。
PLC:
可編程邏輯控制器(ProgrammableLogicController,PLC)。從網(wǎng)上可以了解到PLC的具體功能和開發(fā)細(xì)節(jié)。這里我以個(gè)人的理解來加以說明。從功能上來講,PLC和常見的任何一款單片機(jī)沒有任何區(qū)別。那么PLC和單片機(jī)的不同之處,就只有穩(wěn)定性這一個(gè)不同點(diǎn)了。而PLC現(xiàn)在正在工業(yè)生產(chǎn)中大行其道。也就可見穩(wěn)定性是對(duì)于工業(yè)生產(chǎn)是多么的重要。這也是PLC比單片機(jī)貴幾百幾千倍,但是也離不開PLC的原因。最為著名的PLC為:西門子PLC。
Modbus協(xié)議:
既然工業(yè)中對(duì)安全和穩(wěn)定要求這么高,因此適合在工業(yè)工廠中使用通信協(xié)議“Modbus”就誕生了。也成為了行業(yè)的標(biāo)準(zhǔn)。所有工業(yè)下位機(jī)設(shè)備都是支持Modbus協(xié)議。所有工業(yè)上位機(jī)軟件開發(fā)平臺(tái),都默認(rèn)提供了Modbus通信模塊(庫),都不用你自己開發(fā)。注意,Modbus只是工業(yè)通信協(xié)議中的一個(gè)。除此之外,還有其他工業(yè)級(jí)別的通信協(xié)議。
組態(tài)軟件:
前面提到,在工業(yè)生產(chǎn)中對(duì)軟件的功能要求不高,只有固定的幾類,常用的功能有:顯示電流電壓溫度等物理量、開關(guān)控制、報(bào)警、記錄log、邏輯判斷、與PLC通信。因此開發(fā)平臺(tái)把這幾個(gè)功能進(jìn)行了模塊化,開發(fā)人員只需通過“配置”即可做出一款工控上位機(jī)軟件。這類軟件開發(fā)平臺(tái)叫做“組態(tài)軟件”。國外組態(tài)軟件:InTouch、WinCC、iFix,國內(nèi)組態(tài)軟件:KingView(組態(tài)王)、KingSCADA(組態(tài)王的升級(jí)版本)。注意,組態(tài)軟件一般都是收費(fèi)軟件,且價(jià)格不便宜。
寫上位機(jī)程序要學(xué)習(xí)哪些編程軟件
上位機(jī)程序要學(xué)習(xí)哪些編程軟件
既然是上位機(jī)編程,當(dāng)然應(yīng)該是與控制有關(guān),還有下位機(jī),所以這個(gè)編程用到的軟件主要應(yīng)該有:
1、C語言,這是基本的上位機(jī)語言,特別在以前的DOS時(shí)代,用的十分普遍
2、C++,這是目前用的很多的編程語言,VC,MFC等都屬于這個(gè)范疇
3、VB,這個(gè)語言現(xiàn)在應(yīng)用也很廣泛,由于可視化編程,入門較容易,很多人在使用
關(guān)于上位機(jī)軟件開發(fā)用哪些軟件和上位機(jī)軟件開發(fā)用哪些軟件做的介紹到此就結(jié)束了,不知道你從中找到你需要的信息了嗎 ?如果你還想了解更多這方面的信息,記得收藏關(guān)注本站。