|
買了自加熱的榨汁機(jī)每天補(bǔ)充營養(yǎng)是件好事,但是為此早起一個(gè)小時(shí)卻劃不來。如果為了節(jié)省時(shí)間,早上用微波爐加熱昨晚做好的豆汁,口感卻不怎么好。怎么辦?買定時(shí)加熱的榨汁機(jī),估計(jì)價(jià)錢會(huì)很高,不過市面上好像也沒有帶這種功能的。
正好這段時(shí)間對(duì)硬件比較感興趣,所以抽時(shí)間用西門子PLC224實(shí)現(xiàn)了該功能(一個(gè)PLC一兩千元,用PLC控制好像有點(diǎn)高射炮打蚊子--大材小用,建議最好用單片機(jī)或.NET Micro Framework實(shí)現(xiàn),這樣成本會(huì)很低)。
基本思路:
1、由于PLC外部沒有顯示和控制接口,所以需要在PC機(jī)上編寫一個(gè)程序,用來設(shè)定定時(shí)時(shí)間和間隔。此外由于PLC的時(shí)鐘精度較低,長時(shí)間運(yùn)行偏差較大,所以還得提供一個(gè)校時(shí)功能。
2、PLC程序相對(duì)比較簡單,只要用當(dāng)前時(shí)間和設(shè)定時(shí)間進(jìn)行比較,時(shí)間到,則Q0.0輸出信號(hào),由此驅(qū)動(dòng)繼電器工作,過了時(shí)間間隔,則停止輸出。
3、PC和PLC通信部分,由于PLC原生支持PPI協(xié)議,可以采用我以前編寫的西門子PPI控件進(jìn)行訪問。當(dāng)然也可以采用Modbus Rtu模式進(jìn)行通信,不過需要PLC程序添加Modbus Rtu Slave庫,這樣增大了PLC程序空間,由于Modbus協(xié)議為公開協(xié)議,可以在PC上自行編寫Modbus Rtu讀寫程序,不過也可以采用我編寫的Modbus Rtu控件進(jìn)行通信控制。
實(shí)際接線圖如下:
PLC程序如下(語句表)
NETwork 1
// 初始化
LD SM0.1
MOVB 16#55, VB101 //復(fù)位初始狀態(tài)
NETwork 2
// 設(shè)定日期
LDB= VB100, 16#AA
MOVB 16#55, VB100
//VB110 年 VB111 月 VB112 日 VB113 時(shí) VB114 分 VB115 秒 VB117 星期
TODW VB110 //設(shè)置時(shí)鐘
NETwork 3
// 讀取日期(1s刷新一次)
LD SM0.5
EU
TODR VB120 //讀取時(shí)鐘
NETwork 4
// 判斷是否開始輸出
LDB= 16#55, VB101 //沒有輸出
AB= VB123, VB130 //時(shí)
AB= VB124, VB131 //分
AB= VB125, VB132 //秒
EU
S Q0.0, 1 //Q0.0輸出
MOVB 16#AA, VB101 //置位狀態(tài)
NETwork 5
// 判斷是否停止輸出
LDB= 16#AA, VB101 //沒有輸出
AB= VB123, VB140 //時(shí)
AB= VB124, VB141 //分
AB= VB125, VB142 //秒
EU
R Q0.0, 1 //Q0.0輸出
MOVB 16#55, VB101 //復(fù)位狀態(tài)
NET技術(shù):讓榨汁機(jī)定時(shí)工作(C#+PLC),轉(zhuǎn)載需保留來源!
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。