一、plc的軟件系統(tǒng)
plc的軟件可分為兩大部分:系統(tǒng)軟件和用戶程序。系統(tǒng)軟件由plc制造廠商固化在機(jī)內(nèi),用以控制可編程控制器本身的動(dòng)作。用戶程序由plc的使用者編址并輸入,用于控制外部對(duì)象的運(yùn)行。
1、系統(tǒng)軟件
系統(tǒng)軟件又可分為系統(tǒng)管理程序、用戶指令解釋程序及標(biāo)準(zhǔn)程序模塊和系統(tǒng)調(diào)用。
1)系統(tǒng)管理程序
系統(tǒng)管理程序是系統(tǒng)軟件中最重要的部分,,管控制plc的運(yùn)作。其作用包括三個(gè)方面:一是運(yùn)行管理,即對(duì)控制plc何時(shí)輸入、何時(shí)輸出、何時(shí)計(jì)算、何時(shí)自檢、何時(shí)通信等作時(shí)間上的分配管理。二是存儲(chǔ)空間管理,即生成用戶環(huán)境。由它規(guī)定各種參數(shù)、程序的存放地址,將用戶使用的數(shù)據(jù)參數(shù)、存儲(chǔ)地址轉(zhuǎn)化為實(shí)際的數(shù)據(jù)格式及物理地址,將有限的資源變?yōu)橛脩艨珊芊奖愕刂苯邮褂玫脑H窍到y(tǒng)自檢程序,它包括各種系統(tǒng)出錯(cuò)檢測(cè)、用戶程序語法檢驗(yàn)、句法檢驗(yàn),警戒時(shí)鐘運(yùn)行等。plc正是在系統(tǒng)管理程序的控制下,按部就班地工作的。
2)用戶指令解釋程序
眾所周知,任何計(jì)算機(jī)最終都是執(zhí)行機(jī)器語言指令的。但用機(jī)器語言編程卻是非常復(fù)雜的事情。plc可用梯形圖語言編程。把使用者直觀易懂的梯形圖變成機(jī)器懂得的機(jī)器語言,這就是解釋程序的任務(wù)。解釋程序?qū)⑻菪螆D逐條解釋,翻譯成相應(yīng)的機(jī)器語言指令,由cpu執(zhí)行這些指令。
3)標(biāo)準(zhǔn)程序模塊和系統(tǒng)調(diào)用
這部分軟件由許多獨(dú)立的程序塊組成。各程序塊完成不同的功能,有些完成輸入、輸出處理,有些完成特殊運(yùn)算等。plc的各種具體工作都是由這部分程序來完成的。這部分程序的多少?zèng)Q定了plc性能的強(qiáng)弱。
整個(gè)系統(tǒng)軟件是一個(gè)整體,其質(zhì)量的好壞很大程度上會(huì)影響plc的性能。很多情況下,通過改進(jìn)系統(tǒng)軟件就可在不增加任何設(shè)備的條件下,大大改善plc的性能。因此plc的生產(chǎn)廠商對(duì)plc的系統(tǒng)軟件都非常重視,其功能也越來越強(qiáng)。
2、用戶程序
用戶程序是plc的使用者針對(duì)具體控制對(duì)象編制的程序。在小型plc中,用戶程序有三種形式:指令表(stl)、梯形圖(lad)和順序功能流程圖(sfc)。
二、plc的編程語言
由于plc是專為工業(yè)控制需要而設(shè)計(jì)的,因而對(duì)于使用者來說,編程時(shí)完全可以不考慮微處理器內(nèi)部的復(fù)雜結(jié)構(gòu),不必使用各種計(jì)算機(jī)使用的語言,而把plc內(nèi)部看作由許多“軟繼電器”等邏輯部件組成,利用plc提供的變成語言來編制控制程序。
plc提供的編程語言通常有三種:梯形圖、指令表和順序功能流程圖。
1、梯形圖編程
梯形圖表達(dá)式是在原電器控制系統(tǒng)中常用的接觸器、繼電器梯形圖基礎(chǔ)上演變而來的。它的最大優(yōu)點(diǎn)是形象、直觀和實(shí)用,為廣大電氣技術(shù)人員所熟知,是plc的主要編程語言。
plc的梯形圖與電器控制系統(tǒng)梯形圖的基本思想是一致的,但也有很大的區(qū)別(詳見第6章),表面看起來完全一樣的繼電器線路與梯形圖,它們產(chǎn)生的效果可能一樣,也可能不完全一樣,甚至某些作用完全相反。plc的梯形圖使用的是內(nèi)部繼電器、定時(shí)/計(jì)數(shù)器等,都是由軟件實(shí)現(xiàn)的。其主要特點(diǎn)是使用方便,修改靈活。這是傳統(tǒng)電器控制的繼電器梯形圖硬件接線所無法比擬的。
圖1所示是用omron公司c系列p型機(jī)編號(hào)的自保持電路梯形圖。這里0506的觸點(diǎn)與啟動(dòng)觸點(diǎn)0000并聯(lián)。當(dāng)0000接通,0506工作后,0506線圈可由自己的觸點(diǎn)保持。若0001通,則0506斷。
圖1 自保持電路梯形圖
2、指令語句表編程
指令語句表語言類似于微機(jī)中的助記符語言。它是可編程控制器最基礎(chǔ)的編程語言。所謂指令語句表編程,是用一個(gè)或幾個(gè)容易記憶的字符來代表可編程控制器的某種操作功能。每個(gè)生產(chǎn)廠家使用的助記符是各不相同的,因此同一個(gè)梯形圖書寫的語句形式不盡相同。語句是用戶程序的基礎(chǔ)單元,每個(gè)控制功能由一個(gè)或多個(gè)語句的用戶程序來執(zhí)行。每條語句是規(guī)定cpu如何動(dòng)作的指令,它的作用和微機(jī)的指令一樣,而且plc的語句也是由操作碼和操作數(shù)組成的,故其表達(dá)式也和微機(jī)指令類似。
plc的語句為
操作碼+操作數(shù) 或 操作碼+標(biāo)識(shí)符+參數(shù)
其中,操作碼用來指定要執(zhí)行的功能,告訴cpu應(yīng)該進(jìn)行什么操作;操作數(shù)內(nèi)包含執(zhí)行該操作所必需的信息,告訴cpu用什么地方的東西來執(zhí)行此操作。具體指令的說明在后面的章節(jié)有詳細(xì)的介紹。
表1是圖1所示梯形圖相對(duì)應(yīng)的指令表。
表1 指令表
3、順序功能流程圖編程
順序功能流程圖編程(sfc)是一種較新的編程方法。它的作用是用功能圖來表達(dá)一個(gè)順序控制過程。目前國際電工協(xié)會(huì)(iec)也正在實(shí)施發(fā)展這種新的編程標(biāo)準(zhǔn)。
使用sfc作為一種步進(jìn)控制語言,用這種語言可以對(duì)一個(gè)控制過程進(jìn)行控制,并顯示該過程的狀態(tài)。將用戶應(yīng)用的邏輯分成步和轉(zhuǎn)換條件,來代替一個(gè)長(zhǎng)的梯形圖程序。這些步和轉(zhuǎn)換條件的顯示,使用戶可以看到在某個(gè)給定時(shí)間中機(jī)器過程處于什么狀態(tài)。
圖2所示是一個(gè)順序鉆孔的順序功能流程圖編程的例子。方框中數(shù)字代表順序步,每一步對(duì)應(yīng)于一個(gè)控制任務(wù),每個(gè)順序步的步進(jìn)條件以及每個(gè)順序執(zhí)行的功能可以寫在方框右邊。
圖3 順序功能流程圖編程示例