在线免费观看成年人视频-在线免费观看国产-在线免费观看国产精品-在线免费观看黄网站-在线免费观看精品

產品分類

當前位置: 首頁 > 工業控制產品 > 自動化控制 > PLC可編程控制器 > 大型PLC可編程控制器

類型分類:
科普知識
數據分類:
大型PLC可編程控制器

利用VB實現PC與PLC的聯機控制

發布日期:2022-04-26 點擊率:55

     近年來,隨著可編程控制器(以下簡稱PLC)技術的不斷發展,速度、功能、可靠性和穩定性的不斷提升,其在工業控制中的運用越來越廣泛。個人計算機(以下簡稱PC)具有人機界面好,編程軟件豐富,數據處理快,信息存儲方便,圖像功能完善等優點。以PLC為下位機,以PC機為上位機的聯機控制模式,結合了PLC與PC各自的優點,提高了控制能力和可靠性,不僅操作使用方便,產品造價也較低,因而成為工業控制中應用較多的模式。本文以電動機正反轉控制為實例,說明松下FP1系列PLC與PC實現聯機控制的方法。

    1.松下FP1系列PLC與PC機的通信連接

    松下FP1系列PLC均設有一個RS422串行通信接口。該接口既可用于PLC與PC機聯機進行梯形圖程序編程與調試,也可用于正常工作時的數據通信。PC機一般均設有一個以上的RS232C串行通信接口。由于RS232C和RS422屬于不同的串行通信接口,通信信號的類型和工作方式不一樣,因此,PLC與PC進行串行通信連接時,必須在中間安裝一個RS422/RS232C適配器來完成信號的轉換(部分PLC也具有RS232C口,此時可直接連接)。FP1系列PLC與PC機的通信連接如圖1所示。

 

    2.PLC控制電機正反轉電路設計

    PLC控制電機正反轉的接線如圖2所示,其中SB0、SB1、SB2開關按鈕分別用于控制電機的正轉、反轉和停止;KM1、KM2分別為電機正反轉控制的接觸器。由于PLC直接控制交流接觸器,所以PLC應選擇繼電器輸出型,并在接觸器回路采用互鎖來保證電路的安全。

    3.PC與PLC的聯機控制程序

    按上述圖1完成PLC與PC機的通信連接后,還需采用PLC聯機編程軟件或手持編程器對PLC內部通信參數專用的系統寄存器No.410~No.418進行設定,具體為:串口選擇為COM1,波特率為9600bps,數據位長度為8位,停止位為1位,奇校驗,單元號為1。

    4.PLC控制程序

    PLC的控制程序要既能現地控制,又能使PC機通過串口通信實現上位機對電動機的正反轉控制和電機狀態信息反饋。具體程序如圖3所示。

 

    程序中為實現PC機對電機的控制使用了R100、R101和R102三個內部繼電器。內部繼電器可由PC機按松下FP1系列PLC的NEWTOCOL專用通信協議(具體協議可參考廠家資料),以發送特定字符串的形式進行讀寫。為了仿效按鈕操作的效果,三個內部繼電器由上位機置位后啟動對應的定時器,經0.8S后由定時器對內部繼電器自動進行復位。

    5.PC機控制程序與界面

    作為上位機,PC機通過人機界面,將操作人員的操作指令轉換成相應的通信字符串并經串口發送至PLC,實現對電機的控制;另一方面,PC機定時讀取PLC寄存器的數據,從而可判斷出PLC對電動機的控制狀態并在人機界面上顯示出來。

    PC機的程序利用VisualBasic6.0進行開發,首先,從菜單“工程”→“部件…”→“控件”中添加串行口通信控件MicrosofcCommControl6.0到工具箱中,然后從工具箱中往窗體添加下表所列的控件。

 

    PC機的控制程序如下:

    PrivateSubForm_Load()'窗體加載過程

    MSComm1.CommPort=1'通信控件選用PC機的串口1

    MSComm1.Settings="9600,o,8,1"'設定串口1的波特率為9600bps,奇校驗,8位數據位,1位停止位

    MSComm1.PortOpen=True'打開串口1

    Timer1.Interval=1000'定時器1的定時值為1s

    Timer1.Enabled=True'啟動定時器1

    EndSub

    Functioncom(aAsString,bAsInteger)'向PLC讀寫寄存器內容函數

    MSComm1.InBufferCount=0'清空串口的接收緩沖區

    MSComm1.Output=a'將要發送的字符串從串口發送出去

    Do

    DoEvents

    LoopUntilMSComm1.InBufferCount>=b'等待PLC的響應字符至一定位數

    com=MSComm1.Input'讀入串口接收到的字符串

    EndFunction

    PrivateSubTimer1_Timer()'定時讀取Y0、Y1的值以判斷電機當前狀態

    a="%01#RCP2Y0000Y0001**"+Chr(13)'定義讀Y0、Y1值的通信字符串

    s=com((a),9)'讀Y0、Y1的當前值

    IfMid(s,7,1)="1"Then'返回字符串中第7位為1表示Y0接通,電機正轉

    cmdzz.Enabled=False'電機已正轉,禁止操作正轉按鈕但可操作反轉按鈕

    cmdfz.Enabled=True

    Labdjzt.Caption="電機當前狀態:正轉"

    ElseIfMid(s,8,1)="1"Then'反轉

    cmdfz.Enabled=False'電機反轉,禁止操作反轉按鈕但可操作正轉按鈕

    cmdzz.Enabled=True

    Labdjzt.Caption="電機當前狀態:反轉"

    ElseIfMid(s,7,1)="0"AndMid(s,8,1)="0"Then'停機

    cmdfz.Enabled=True'電機已停止,可操作正轉或反轉按鈕

    cmdzz.Enabled=True

    Labdjzt.Caption="電機當前狀態:停止"

    EndIf

    EndSub

    PrivateSubcmdzz_Click()'正轉指令

    a="%01#WCSR01001**"+Chr(13)'定義將R100置1,啟動正轉的通信字符串

    s=com((a),7)

    EndSub

    PrivateSubcmdfz_Click()'反轉指令

    a="%01#WCSR01011**"+Chr(13)'定義將R101置1,啟動反轉的通信字符串

    s=com((a),7)

    EndSub

    PrivateSubcmdtj_Click()'停機指令

    a="%01#WCSR01021**"+Chr(13)'定義將R102置1使電機停轉的通信字符串

    s=com((a),7)

    EndSub

    運行上述程序,既可在PC機上實現對電機正反轉以及停止的控制,也可在現地通過SB0、SB1和SB2按鈕實現對電機的控制;既可在現地啟動或停止電機轉動,也可在PC機上實現停機或電機轉動控制。由于PC機定時讀取PLC內部Y0、Y1的值,所以在現地操作改變電機的工作狀態時,在PC機程序中可顯示出當前電機的工作狀態并禁止相應的操作,真正實現了PC與PLC的聯機控制。

    6.結束語

    上述設計已在實踐中應用。經驗證,可在此基礎上,增加聯機通信故障自動檢測報警功能,利用數據讀寫命令實現聯機大批量數據傳送,根據現地來的狀態信息增加PC機動畫演示功能,從而使PC與PLC的聯機控制程序更加完善,控制界面更加形象。根據上述原理,結合PC與PLC控制的特點,可在其它控制場合使用上述方法實現雙機甚至多機聯機控制。
 

下一篇: PLC、DCS、FCS三大控

上一篇: 索爾維全系列Solef?PV