文章内容簡介:主要闡述一台PLC通過一條數據總線控制多個單片機的技術。
大家都知道PLC全稱“為可編程程序控制器”是自動化的核心設備,廣泛用于工業自動化生産線上,與之連接的周圍設備是一些傳感器開關、伺服電機等。
而單片機是一種電子元器件,是組成某種功能電路闆的核心元件,與之連接的周圍是一些電阻、電容晶體管、集成電路等器件。
好像處于兩個不同的領域,這時有人要問了:
1、PLC與單片機有聯系嗎?
回答是:有聯系
2、PLC可以控制單片機嗎?
回答是:可以,一台PLC能同時讀寫幾十個單片機的數據,筆者最多控制過64個單片機,且實現100%的可靠數據傳輸。
3、這樣做有何用途?
回答是:大有用途,工業自動化生産線一般分為兩種,一種是組裝生産線,另一種是測試生産線,在測試生産線中單片機可以嵌入到工裝夾具中,用于在線監測産品的質量數據,從而進行自動分類篩選。
以下是比較常用的現場總線的類型:
CAN(控制器局部網)
LONWORKS(局部操作網絡)
PROFIBUS(過程現場總線)
FF(基金會現場總線)
HART(可尋址遠程傳感器數據通路)
以上這些都是洋人制定的标準規矩,需要購買專用的驅動芯片,很複雜成本也很高,不實用。
下面我将帶領你們創建屬于自己的數據總線标準,100%的可靠,而且成本很低,我已經應用到很多的設備上且從來沒有掉過鍊子。即使你是小白或菜鳥,也不要怕,很簡單一教就會。
一旦學會你想怎麼玩就這麼玩,在自動化領域無所不能。(待續)
這是一款汽車點火線圈自動測試台,就是用這種總線技術制作的,成本不到2萬。生産節拍與100多萬的設備相同,
PLC與單片機(2)
建議學員初學時PLC選用三菱 FX3U-16M,因為價格為500元左右,功能很強大。我還建議初學者最好選用DC型,24V供電,需要再配一隻開關電源24V/1A足夠了,因為我将PLC歸類為弱電設備,在布線時輸入和輸出都布在弱電線槽内,這樣很規範,做實驗室也很安全。
三菱 FX3U-16M
再配一個 RS232串行通信擴展闆(FX3U-232-BD),大約30元左右(國内高仿的可以用,原裝在150元左右沒必要)
FX3U-232-BD
還需要一條下載線,圓口插PLC左下角,USB插電腦。買電纜時根據說明書安裝驅動程序。
電腦需要安裝PLC編程程序,Gx WORKS2 (三菱新版編程軟件),網上有很多,如果找不到請在留言處留下你的email地址,我發給你。
下面是安裝後的界面,新建一個工程,寫第一行程序(梯形圖)
Gx WORKS2主界面
首先将PLC的S/S端與24V端連接,建立了下拉低電平為輸入“1”的狀态,這也是通常大家公認的一種輸入方式。也就是說當你将X0輸入端子與0V端子短路時,這時PLC的X0端子為輸入“1”,監視X0端子的指示會亮,你可以用一段導線試一下。
将藍色方框光标停留在左上角開始位置,然後按F5後出現一個對話框輸入X0後确定
指令輸入對話框
這種像電容一樣的圖标,可以理解為一個常開觸點(也就是說“0”狀态時,為觸點被斷開)X0~X15輸入端初始狀态為“0”狀态,當你用一棵導線将X的某個端對0V端短路時,這個端即為“1”狀态(觸點被接通)。
将藍色方框光标停留在X000後面位置,按F7出現對話框
指令輸入對話框
輸入Y0再點确定,這時完成了第一行的梯形圖程序,然後在主菜單上“編輯/轉換”欄下點擊“轉換 RUN中寫入”,這時程序下載到PLC中了。當你再次用0V線觸碰X0端子時,Y0輸出指示燈也跟着亮了,此時Y0端是有輸出的,可以用一個 24V的繼電器進行實驗更直觀。
帶座有螺絲接線端的繼電器
隻接繼電器線圈的兩個端子,一端接Y0,一端接 24V。
再檢查一下PLC的Y0端的COM端要接到0V端,這也是确立拉低電平的輸出方式,也是大家公認的一種輸出方式。
這時再用0V線觸碰X0時,會聽到繼電器跟着響一聲。
你還可以再改一下程序,将藍色方框光标停留在下一行,點鼠标右鍵選“編輯--行插入”。
梯形圖
在編輯這段程序時要注意藍色方框光标停留的位置,添加豎線時光标要停在豎線的右側,這段程序X0和Y0是并聯的關系,目的是産生自鎖,X1為常閉觸點,為了斷開自鎖。
這時将程序下載到PLC後,再用0V線觸碰一下X0和X1,看看效果怎樣。(未完待續)
PLC與單片機(3)
下面開始講PLC如何通過232接口向單片機發數據的,首先定義一下數據結構,如下圖所示:
數據結構自己随意定,由于在這裡單片機選用8位的,所以定義了發兩個8位和收兩個8位的數據結構。圖中Y1為PLC輸出的一脈沖用于單片機串口的強制複位,确保100%的數據傳輸。
關于波特率的設定在,打開編輯軟件GX Works2,點擊左側工程導航欄中的“PLC參數”如下圖:在傳輸速度欄改為9600,數據長度為8位,停止位1位,請記住這些設置,要與在後面要與之通訊的單片機串口的設置保持一緻。
下面開始編寫PLC串口發送程序,将藍色光标移到第三行Y0右側先加一條豎線,再按F8,這時出現對話框:
輸入SET M8161确定,M8161為PLC内部的一位寄存器(也稱為軟元件),在這裡表示采用8位數據模式。
再按F8,這時出現對話框:
輸入RS D10 K2 D100 K4确定,這裡D10為發送寄存器(自己随意定義的),在FX3U的内部D0~D199為用戶使用的通用寄存器。D100設為接受寄存器,K2為10進制數2,K4位10進制數4。
------[ RS D10 K2 D100 K4 ] ,這是三菱PLC的串口發送語句,表示為發送2字節接受4字節,因為PLC發送的同時也在接受,所以接收必須設為4字節(其中前2個字節為發送數據後2個字節為單片機回答的數據)。
再按F8,這時出現對話框:
輸入SET M6确定,M6為PLC内部的一位寄存器(也稱為軟元件)在FX3U中一共有M0~M499是可以修改的,這裡 [ SET M6 ] 的意思是将M6置為1,(用M幾都可以)這裡M6定義為發送控制标志。
當M6置為1時,開始脈沖寬度T256定時(K1表示1毫秒定時),三菱的FX3U内部有定時器T256~T319為毫秒級定時器共64個。
當M6置為0時,開始脈沖間隔T257定時(K9表示9毫秒定時)。
M8122是串口控制标志(不是自己定制的是内部專用的)為1時表示開始發送數據。
M8123是串口控制标志(不是自己定制的是内部專用的)為1時表示完成接受數據,需要及時清0,否則不在接收數據。
此時,已經有數據不停的從串口發出,現在發送的都是0,如果修改發送的數據,将需要發送的數據寫入D20和D21即可。(未完待續,下期開始講單片機如何接收數據)
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!