前言
PLC全稱可編程邏輯控制器,主要由輸入輸出(IO)+ 邏輯控制(程序)+ 外部接口(通信)三部分組成。
如果不采用PLC,僅僅通過上位機,我們通過一個IO采集卡,然后將PLC的邏輯控制改成上位機代碼來實現(xiàn),是不是可以實現(xiàn)一些簡單的邏輯控制?
既然可行,給大家做一個簡單的測試,基于IO采集卡實現(xiàn)起保停控制。
實現(xiàn)原理
PLC的實現(xiàn)原理,就是通過不斷地從上而下,從左而右來掃描PLC程序,然后對接一些IO輸入輸出,通過上位機來實現(xiàn)的話,實現(xiàn)原理可以類似,我們可以通過單獨的一個線程來實現(xiàn)掃描,而PLC里的每個指令,我們上位機都可以通過構(gòu)造對應的類來實現(xiàn)。從某種意義上來說,為什么PLC實現(xiàn)邏輯控制比較簡單,其實是因為廠家已經(jīng)幫我們封裝好了很多開箱即用的指令,我們直接調(diào)用即可。
如果想使用上位機來替代PLC,PLC的IO可以采用IO采集卡,PLC指令可以自己封裝類,PLC中斷,可以通過事件來實現(xiàn),通信部分上位機自然可以實現(xiàn)。
IO采集卡
我這里采用的是正運動的一個IO采集卡,型號是ECI0032,相關(guān)參數(shù)如下所示:
ECI0032 板上自帶 16 個通用輸入口,16 個通用輸出口(帶過流保護)。
ECI0032 帶 1 個 RS232 串口,1 個以太網(wǎng)接口。
ECI0032 帶一個 CAN 總線接口,支持通過 ZCAN 協(xié)議來連接擴展模塊和控制器。
實現(xiàn)過程
基本的接線和配置,我這里就不詳細闡述了,這里我將板卡的IP地址改為192.168.2.33。
這里接了兩個按鈕和一個指示燈,分別表示啟動、停止和狀態(tài)顯示。
界面設(shè)計如下所示:
當連接上IO卡之后,可以通過按鈕進行本地控制,也可以通過上位機進行遠程控制。
核心代碼:
private void ProcessControl()
{
while (!cts.IsCancellationRequested)
{
//檢測到開始按鈕
if (startEdge.CheckEdgeSingal(motion.GetInput(1)))
{
motion.SetOutput(0, true);
}
//檢測到停止按鈕
if (stopEdge.CheckEdgeSingal(motion.GetInput(0)))
{
motion.SetOutput(0, false);
}
}
}
這個寫法有點類似于SCL的邏輯。
測試結(jié)果如下所示:
-END-
-
輸入輸出
+關(guān)注
關(guān)注
0文章
42瀏覽量
10870 -
plc
+關(guān)注
關(guān)注
5031文章
13826瀏覽量
472996 -
邏輯控制
+關(guān)注
關(guān)注
0文章
40瀏覽量
12574
發(fā)布評論請先 登錄
如何選擇數(shù)據(jù)采集卡?
blinker控制步進電機起保停,正反轉(zhuǎn),加減速(Arduino uno+esp8266+TB6600驅(qū)動器)資料分享
blinker控制步進電機起保停相關(guān)資料分享
CAN總線智能采集卡的設(shè)計與實現(xiàn)
CPLD在視頻采集卡中的應用
1394卡與視頻采集卡的區(qū)別
數(shù)據(jù)采集卡的功能
模擬量采集卡和數(shù)字IO卡的參數(shù)選擇
圖像采集卡與千兆卡的區(qū)別
高速視頻采集卡設(shè)計方案:620-基于PCIe的高速視頻采集卡

如何使用圖像采集卡

如何選擇適合您需求的采集卡

IO采集模塊能替代PLC采集卡嗎

評論