今天跟大家討論一個(gè)話(huà)題——上位機(jī)開(kāi)發(fā)的核心是什么?
核心
自動(dòng)化行業(yè),越來(lái)越偏向于軟件行業(yè)。
隨著智能制造的發(fā)展,上位機(jī)在自動(dòng)化領(lǐng)域的占有率越來(lái)越高,同時(shí),很多企業(yè)對(duì)上位機(jī)的需求和要求也越來(lái)越高。
我們可以看到很多行業(yè)的細(xì)分市場(chǎng),不同廠(chǎng)商的差異化主要是軟件的差異,很多廠(chǎng)家使用同樣的硬件,但是開(kāi)發(fā)不同的軟件功能,形成不同的產(chǎn)品,這類(lèi)的軟件可以統(tǒng)稱(chēng)為上位機(jī)。
那么上位機(jī)開(kāi)發(fā)的核心是什么?
這個(gè)問(wèn)題我曾經(jīng)跟一些學(xué)員探討過(guò),有很多人說(shuō)是C#編程或通信協(xié)議,但是我不這么認(rèn)為。
我覺(jué)得上位機(jī)開(kāi)發(fā)的核心是工藝和業(yè)務(wù)。
大家如果做過(guò)一些中大型的上位機(jī),你會(huì)發(fā)現(xiàn)更多的精力主要是集中在定制功能、工藝要求、流程梳理和用戶(hù)體驗(yàn)上,而通信只是一個(gè)敲門(mén)磚而已。
并不是通信不重要,只是我覺(jué)得通信不是核心,核心是業(yè)務(wù)。
很多時(shí)候我們的上位機(jī)是需要對(duì)接很多設(shè)備的,比如PLC對(duì)接、IO設(shè)備對(duì)接、掃碼追溯、相機(jī)采集、MES對(duì)接、第三方軟件對(duì)接等等,如何將這些設(shè)備聯(lián)合起來(lái),實(shí)現(xiàn)我們的自動(dòng)化流程,這是上位機(jī)軟件的核心。
通信的重要性在于通信相當(dāng)于基礎(chǔ)建設(shè),沒(méi)有基礎(chǔ)建設(shè),談何空中閣樓?
為什么說(shuō)通信不是核心呢?因?yàn)橥ㄐ攀枪袒,只要學(xué)會(huì)了,就可以一直重復(fù)使用,并且逐步形成框架。
唯有變化的東西,才是核心的東西。
通信
但是我們?cè)趯W(xué)習(xí)通信之前,需要先學(xué)習(xí)編程語(yǔ)言,編程語(yǔ)言相當(dāng)于工具,當(dāng)你有了工具,你就可以去干活了。
有了編程語(yǔ)言,有了通信協(xié)議,我們就可以去開(kāi)發(fā)通信驅(qū)動(dòng),實(shí)現(xiàn)與各種下位機(jī)之間的通信,才可以拿到下位機(jī)中的一些數(shù)據(jù)。
有了這些數(shù)據(jù),我們就可以利用這些數(shù)據(jù)做文章,根據(jù)用戶(hù)的需求,開(kāi)發(fā)出讓客戶(hù)滿(mǎn)意的上位機(jī)軟件。
那么通信應(yīng)該如何去學(xué)習(xí)?
現(xiàn)在工控領(lǐng)域的通信協(xié)議種類(lèi)繁多,導(dǎo)致很多人一下子慌了神,不知道從何學(xué)起,大家都知道語(yǔ)言之間是相通的,其實(shí)各種通信協(xié)議之間也是有相似之處的,選擇其中一種協(xié)議,認(rèn)真去研究,深度去剖析,這樣即可觸類(lèi)旁通。
應(yīng)用
上位機(jī)通信會(huì)分兩個(gè)層次,一種叫通信測(cè)試,一種叫通信應(yīng)用。
所謂通信測(cè)試,就是我們可以通過(guò)代碼讀取到變量數(shù)據(jù),可以寫(xiě)入變量數(shù)據(jù),驗(yàn)證通信的可行性。
所謂通信應(yīng)用,就是如何集成到項(xiàng)目中進(jìn)行開(kāi)發(fā)應(yīng)用,如何結(jié)合多線(xiàn)程及數(shù)據(jù)類(lèi)型轉(zhuǎn)換,實(shí)現(xiàn)項(xiàng)目級(jí)開(kāi)發(fā)。
前者是通信庫(kù)的功能,后者在實(shí)際項(xiàng)目開(kāi)發(fā)中才會(huì)有所體現(xiàn)。
當(dāng)通信應(yīng)用到一定層面后,必然會(huì)形成框架。所謂框架,就是對(duì)固化和重復(fù)的代碼進(jìn)行封裝,基于框架開(kāi)發(fā),會(huì)大大提高開(kāi)發(fā)效率,同時(shí)降低出錯(cuò)的概率。