前言
最近有一些小伙伴問:能不能不使用PLC,通過上位機(jī)來實(shí)現(xiàn)設(shè)備控制?
關(guān)于這個(gè)問題,我做了一些思考。
PLC全稱可編程邏輯控制器,主要由輸入輸出(IO)+ 邏輯控制(程序)+ 外部接口(通信)三部分組成,如果不采用PLC,僅僅通過上位機(jī),我們至少需要一個(gè)IO采集卡,然后將PLC的邏輯控制改成上位機(jī)代碼來實(shí)現(xiàn),通信這部分對(duì)于上位機(jī)來說不是很難。
所以,從某種意義上來說,通過上位機(jī)來實(shí)現(xiàn)設(shè)備控制是可行的,但不一定是最優(yōu)方案,因?yàn)樾g(shù)業(yè)有專攻,PLC就是專門做邏輯控制的,上位機(jī)更多的角色是通過通信來實(shí)現(xiàn)上層控制。
既然可行,利用周末時(shí)間,給大家做一個(gè)簡(jiǎn)單的測(cè)試。
實(shí)現(xiàn)原理
PLC的實(shí)現(xiàn)原理,就是通過不斷地從上而下,從左而右來掃描PLC程序,然后對(duì)接一些IO輸入輸出,通過上位機(jī)來實(shí)現(xiàn)的話,實(shí)現(xiàn)原理我認(rèn)為是類似的,我們可以通過單獨(dú)的一個(gè)線程來實(shí)現(xiàn)掃描,而PLC里的每個(gè)指令,我們上位機(jī)都可以通過構(gòu)造對(duì)應(yīng)的類來實(shí)現(xiàn)。從某種意義上來說,為什么PLC實(shí)現(xiàn)邏輯控制比較簡(jiǎn)單,其實(shí)是因?yàn)閺S家已經(jīng)幫我們封裝好了很多開箱即用的指令,我們直接調(diào)用即可。
如果想使用上位機(jī)來替代PLC,PLC的IO可以采用IO采集卡,PLC指令可以自己封裝類,PLC中斷,可以通過事件來實(shí)現(xiàn),通信部分上位機(jī)自然可以實(shí)現(xiàn)。
IO采集卡
我這里采用的是正運(yùn)動(dòng)的一個(gè)IO采集卡,型號(hào)是ECI0032,相關(guān)參數(shù)如下所示:


ECI0032 板上自帶 16 個(gè)通用輸入口,16 個(gè)通用輸出口(帶過流保護(hù))。
ECI0032 帶 1 個(gè) RS232 串口,1 個(gè)以太網(wǎng)接口。
ECI0032 帶一個(gè) CAN 總線接口,支持通過 ZCAN 協(xié)議來連接擴(kuò)展模塊和控制器。
實(shí)現(xiàn)過程
基本的接線和配置,我這里就不詳細(xì)闡述了,這里我將板卡的IP地址改為192.168.2.33。
這里接了兩個(gè)按鈕和一個(gè)指示燈,分別表示啟動(dòng)、停止和狀態(tài)顯示。

界面設(shè)計(jì)如下所示:

當(dāng)連接上IO卡之后,可以通過按鈕進(jìn)行本地控制,也可以通過上位機(jī)進(jìn)行遠(yuǎn)程控制。
核心代碼:
private void ProcessControl()
{
while (!cts.IsCancellationRequested)
{
//檢測(cè)到開始按鈕
if (startEdge.CheckEdgeSingal(motion.GetInput(1)))
{
motion.SetOutput(0, true);
}
//檢測(cè)到停止按鈕
if (stopEdge.CheckEdgeSingal(motion.GetInput(0)))
{
motion.SetOutput(0, false);
}
}
}
這個(gè)寫法有點(diǎn)類似于SCL的邏輯。
測(cè)試結(jié)果如下所示:

-END-
-
輸入輸出
+關(guān)注
關(guān)注
0文章
44瀏覽量
11079 -
邏輯控制
+關(guān)注
關(guān)注
0文章
40瀏覽量
12753 -
可編程邏輯控制器
+關(guān)注
關(guān)注
4文章
273瀏覽量
26759
發(fā)布評(píng)論請(qǐng)先 登錄
為什么需要上位機(jī)?上位機(jī)能替代PLC實(shí)現(xiàn)控制嗎?
上位機(jī)與PLC的通信與監(jiān)控設(shè)計(jì)
PLC和上位機(jī)組態(tài)軟件通訊方式
上位機(jī)能不能替代PLC實(shí)現(xiàn)控制?
上位機(jī)能不能替代PLC實(shí)現(xiàn)控制?
上位機(jī)是什么?上位機(jī)具有哪些特點(diǎn)?上位機(jī)能替代PLC實(shí)現(xiàn)控制嗎?
上位機(jī)在工業(yè)控制系統(tǒng)中的重要作用及其與PLC的互補(bǔ)關(guān)系
上位機(jī)如何采集plc數(shù)據(jù) 上位機(jī)怎么控制plc
plc與上位機(jī)怎么交互硬件控制
上位機(jī)怎么給plc信號(hào)輸出
上位機(jī)如何實(shí)時(shí)讀plc的狀態(tài)
上位機(jī)可以控制plc輸入點(diǎn)嗎
上位機(jī)能替代PLC實(shí)現(xiàn)控制嗎
上位機(jī)能不能替代PLC實(shí)現(xiàn)控制?為什么一定要學(xué)上位機(jī)?
上位機(jī)能代替PLC實(shí)現(xiàn)控制?
評(píng)論