軟PLC指令系統(tǒng)設計


 3 .4PLC指令系統(tǒng)設計

3. 4. 1PLC指令的組成

梯形圖與指令表是開發(fā)PLC用戶程序使用最多的兩種編程語言,雖然二者 指令的表達形式不同但表示內容都是由操作碼和操作數(shù)組成。操作碼提供運算的 法則,操作數(shù)提供執(zhí)行運算所需的數(shù)據(jù)和地址信息。軟PLC指令是以函數(shù)的形 式提供操作碼和操作數(shù)。

PLC運行系統(tǒng)為每條PLC指令編寫了相應的指令函數(shù),它們共同組成了 軟PLC系統(tǒng)的指令庫。為了便于以后的擴展和管理,本文在編制軟PLC指令時 制定了統(tǒng)一的格式。

3. 4. 2PLC指令函數(shù)

PLC指令分為基本指令和功能指令兩類,前者用于對位進行簡單的邏輯運 算,是編制PLC程序最常使用的指令;后者主要對字節(jié)、字等復雜數(shù)據(jù)進行處 理完成某種特定的功能。本文在參考國際標準IEC61131-3中梯形圖與指令表指 令的基礎上,依據(jù)SIMATIC S7-300指令系統(tǒng)設計軟PLC系統(tǒng)的指令函數(shù)。

本軟PLC系統(tǒng)共設計了 25個指令函數(shù),其中基本指令函數(shù)16個,功能指 令函數(shù)9個。表3-2、3-3分別對每個指令函數(shù)進行了說明。

 

 

編號

 

PLC指令

 

指令函數(shù)

 

實現(xiàn)功能

 

1001

 

LD

 

ReadInBit

 

讀輸入位狀態(tài)壓入堆棧

 

1002

 

LDI

 

ReadInBitnot

 

讀輸入位狀態(tài)取反壓入堆棧

 

1003

 

A

 

ReadInANDBit()

 

讀輸入位狀態(tài)與棧頂元素進行邏輯運算,然 后壓入堆棧

 

1004

 

AI

 

ReadInANDBitnot()

 

讀輸入位狀態(tài)取反后與棧頂元素進行邏輯與”運 算,然后壓入堆棧

 

1005

 

0

 

ReadInORBit()

 

讀輸入位狀態(tài)與棧頂元素進行邏輯運算,然 后壓入堆棧

 

1006

 

01

 

ReadInORBitnot()

 

讀輸入位狀態(tài)取反后與棧頂元素進行邏輯或”運 算,然后壓入堆棧

 

1007

 

OutBit

 

WriteOutBit

 

將邏輯堆棧棧頂元素狀態(tài)寫到對應輸出地址位

 

1008

 

NOT

 

LogicNot

 

將邏輯堆棧棧頂元素狀態(tài)取反后壓入堆棧

 

1009

 

S

 

SetBit

 

將對應的輸入輸出位狀態(tài)置“1”

 

1010

 

R

 

ResetBit()

 

將對應的輸入輸出位狀態(tài)置“0”

 

1011

 

CopyPush

 

Cpy()

 

將邏輯堆棧棧頂元素復制到第二個棧中

 

1012

 

Pop

 

ReleasePop()

 

釋放邏輯堆棧棧頂元素

 

1013

 

ANB

 

AndStack

 

將兩個堆棧棧頂元素進行邏輯與”運算

 

1014

 

ORB

 

OrStack()

 

將兩個堆棧棧頂元素進行邏輯或”運算

 

1015

 

Copytofirst

 

Copytofirst

 

將邏輯堆棧棧頂兩個元素進行與”運算

 

1016

 

CLR

 

ClearStackQ

 

清空邏輯堆棧中的所有元素

 


 

 

編號

 

PLC指令

 

指令函數(shù)

 

實現(xiàn)功能

 

1017

 

BAND

 

LogicANDByte

 

將兩個字節(jié)的數(shù)值進行邏輯與”運算

 

1018

 

WAND

 

LogicANDWord()

 

將兩個字的數(shù)值進行邏輯與”運算

 

1019

 

BOR

 

LogicORByte()

 

將兩個字節(jié)的數(shù)值進行邏輯或”運算

 

1020

 

WOR

 

LogicORByte()

 

將兩個字的數(shù)值進行邏輯或”運算

 

1021

 

CompareByte

 

ComparedByteLD(); ComparedByteAND ComparedByteOR ;

 

將兩個字節(jié)的數(shù)值進行比較 將比較結果壓入邏輯堆棧;

 

將比較結果與棧頂元素進行邏輯運算; 將比較結果與棧頂元素進行邏輯運算; 比較運算符==、>、<>=、<=、!=

 

1022

 

CompareWord

 

C ompare dWor dLD () ComparedWordAND ; ComparedWordOR()

 

將兩個字的數(shù)值進行比較 將比較結果壓入棧頂;

 

將比較結果與棧頂元素進行邏輯運算; 將比較結果與棧頂元素進行邏輯運算; 比較運算符==、>、<、>=、<=、!=

 

1023

 

Move

 

MoveByte(); Move Word() MoveD Word ;

 

按字節(jié)賦值 按字賦值 按雙字賦值

 

1024

 

Timer

 

TIMER

 

定時功能:用于設定輸出信號的延遲時間, 當延遲時間到達到所設定的值時能流通過

 

1025

 

Counter

 

COUNTER

 

計數(shù)功能:用于對脈沖信號進行計數(shù),當脈 沖數(shù)等于所設定值時能流通過

 


 

下面以基本指令函數(shù)ReadlnBitG和功能指令函數(shù)COUNTER為例,說明他 們的具體實現(xiàn):

(1) ReadInBit()

讀輸入位指令是最常用的指令之一,當軟PLC系統(tǒng)執(zhí)行LD指令時會調用 ReadInBit函數(shù)。首先它按照參數(shù)訪問I/O存儲區(qū)域,通過字節(jié)號查詢到該位軟 元件所在的單元地址,然后查找位號讀取該位當前狀態(tài),將其壓入邏輯堆棧。具 體實現(xiàn)代碼如下:

ReadInBit(char Channel [no])

{bool bitno =false;                          //“0”

ReadBit(Channel[no], bitno);          //讀取操作數(shù)(位)狀態(tài)

pb—stackarea ->push(bitno);         //壓入邏輯堆棧


(2) COUNTER

 

西門子PLC計數(shù)器按計數(shù)方式的不同分為:加計數(shù)器、減計數(shù)器以及加/減 計數(shù)器。本文COUNTER采用遞減方式計數(shù),當當前值減為“0”時計數(shù)器完成 計數(shù)功能。梯形圖指令中的計數(shù)器如圖3.9所示。

PLCCOUNTER類分配了存儲區(qū)域m_counterAREA[]來保存計數(shù)器的 預設倌和狀杰信息。計數(shù)器執(zhí)行函數(shù)的運行流稈如圖3.9所示。當計數(shù)器的狀杰 Curcondition[0]=FALSE (可計數(shù)狀態(tài)Reset=0,檢測到上升沿脈沖信號 輸入時,計數(shù)器的當前值m_CurValue1。當m_CurValue= 0時計數(shù)標志位置 “1”,完成計數(shù)。若Curcondition[0]=TRUE(不可計數(shù)狀態(tài)),則以預設值m_PV 初始化計數(shù)器,并使計數(shù)標志位置“0”,未完成計數(shù)。
計數(shù)器功能的實現(xiàn)代碼如下:

 

{ int bitno =(C_No%8-l); //確定軟兀件所在位號 char flagC=0x01;

 

if(Curcondition[0]==TRUE) //判斷計數(shù)器的狀態(tài) {if(Lastcondition[l]== TRUE)

 

{ m_CurValue=m_PV; } //計數(shù)器值復位 flagC=!(0x01« bitno);

m_counterAREA[C_No/8]&=flagC;// 計數(shù)標志位置 “0”

 

}

else //可計數(shù)狀態(tài)

{ if((m_CurValue!=0)&&(!Lastcondition[l])&&Curcondition[l]) {m_Cur Value--;}//有上升沿脈沖信號輸入計數(shù)值自減

if(m_CurValue==y/判斷計數(shù)器的當前值

 

{

 

flagC=! (0x01« bitno);

m_counterAREA[C_N /8] flagC; //完成計數(shù)功能

 

}

 

else

 

{

 

flagC=!(0x01« bitno);

m_counterAREA[C_No/8]&= flagC;//未完成計數(shù)功能

 

}

 

}

 

}

3. 4. 3PLC指令的尋址

(1)PLC指令尋址格式

PLC指令函數(shù)是通過尋址函數(shù)獲取操作數(shù)及其地址信息的。對于簡單數(shù) 據(jù)軟PLC運行系統(tǒng)提供按位bit)、字節(jié)Byte)的尋址方式,對于復雜數(shù)據(jù)按 字(W)、雙字(DW)方式進行尋址。尋址時首先指定數(shù)據(jù)存儲區(qū)域,接著指定存儲 的輸入、輸出標識,最后指定所在字、字節(jié)以及位地址。例如:尋址LI4.3” 表示對應I/O端子的數(shù)據(jù)存儲在本地通訊存儲區(qū)的輸入映像區(qū),其中L代表 數(shù)據(jù)的存儲區(qū)域,“I”代表存儲在輸入映像寄存區(qū),“4”代表數(shù)據(jù)所在字節(jié)編號, 表示取位操作符,“3”代表所取元素所在字節(jié)中的位號。

由于CPU 次至少能處理8,所以對于按字節(jié)、字、雙字尋址,PLC

米用了頭部尋址加尾部尋址的統(tǒng)一尋址格式。編址格式見圖3.12。米用統(tǒng)一尋址 可避免因外部I/O采集裝置的改變而對用戶程序的接口函數(shù)進行修改,通過尋址 能夠智能獲取數(shù)據(jù)。圖3.13給出了軟PLC按字節(jié)的尋址方式。

 

 

r \

 

區(qū)域標識符

 

輸入輸出標識符

 

尋址類型

 

字節(jié)編號

 

(L,R, T,A,P,C)

 

(iQ)

 

(B,WDW)

 

15 0

 

參數(shù)信息:

L,R,T,A,P,C分別為PLC數(shù)據(jù)在內存中的存儲區(qū)域

I-輸入映像區(qū)Q-輸出映像區(qū)

B-按字節(jié)尋址W-按字尋址DW-按雙字尋址

(2)PLC指令尋址函數(shù)實現(xiàn)

每種尋址方式都有對應的尋址函數(shù),按位尋址函數(shù)ReadBitG、按字節(jié) 尋址函數(shù)ReadByte〇、按字尋址函數(shù)ReadWord(),它們共同完成向PLC指令函 數(shù)提供操作數(shù)的任務。按位尋址函數(shù)ReadBitG的部分實現(xiàn)代碼如下:

 

{ char * chr_point;

 

chr_point=strchr(address,將指針指向字符串中所在位號 switch(address[0])    //判斷軟邏輯存儲區(qū)域

 

{case 'L':

 

switch(addressll) //判斷輸入還是輸出映像區(qū) { case T:

CurrentBitStatus(m SercosBuffer.m SercosToPLCBufFer.m ulSercosToPL

 

C[atoi(address+2)],atoi(chr_point+l),bitbool);

 

break;

 

case 'Q':

 

}

 

CurrentBitStatus(unsigned char Channelno, int bitno,bool &bitstatus) //判斷當前 輸入位狀態(tài)

 

{ char flagbit=0x01; flagbit «=bitno;

 

if((flagbit & Channelno) == flagbit)//判斷當前位狀態(tài)是否為 “ 1 ” bitstatus =tme; else

 

bitstatus =false;

 

}

3. 5本章小結

本章通過分析軟PLC運行系統(tǒng)的工作原理,劃分了軟PLC運行系統(tǒng)的任務 組成,給出了各模塊的執(zhí)行流程圖以及部分實現(xiàn)代碼結合直接方式和間接方式 調度的優(yōu)點實現(xiàn)了軟PLC系統(tǒng)多任務之間的調度,并對軟PLC存儲系統(tǒng)、指令 系統(tǒng)以及尋址方式進行了設計,給出了典型的基本指令和功能指令的實現(xiàn)函數(shù)基本上實現(xiàn)了軟PLC運行系統(tǒng)的功能。


本文采摘自“五軸數(shù)控加工中心軟PLC控制系統(tǒng)的研究”,因為編輯困難導致有些函數(shù)、表格、圖片、內容無法顯示,有需要者可以在網(wǎng)絡中查找相關文章!本文由伯特利數(shù)控整理發(fā)表文章均來自網(wǎng)絡僅供學習參考,轉載請注明!

標簽: 加工中心  數(shù)控加工中心  CNC加工中心  數(shù)控機床  五軸加工中心  
分類: 加工中心  
上一篇軟PLC任務線程的調度
下一篇數(shù)控系統(tǒng)接口

加工中心  數(shù)控加工中心  CNC加工中心  數(shù)控機床  五軸加工中心  相關內容

——

11

2024-12

U600S五軸加工中心視頻

此視頻詳細介紹了U600S高性能五軸加工中心各種參數(shù)及說明!… [了解更多]

05

2024-11

六角亭五軸加工工藝

本文以組合式六角亭模型為實例,分析工藝難點與加工可行性,指出該模型的加工難點是模型形狀不規(guī)則和整體剛性差,并通過設計新的工藝方案解決加工難點,完成了模型整體的加工。新的加工工藝有助于提高加工效率和精度,為五軸數(shù)控加工提供了一個典型案例,對于五軸加工中心數(shù)控加工也具有指導作用和重要… [了解更多]

05

2024-11

自適應控制方法在混聯(lián)五軸加工中心中的應用

宇匠數(shù)控 備注:為保證文章的完整度,本文核心內容由PDF格式顯示,如未有顯示請刷新或轉換瀏覽器嘗試,手機瀏覽可能無法正常使用!本文摘要:通過對混聯(lián)五軸加工中心自適應深度學習控制方法的 研 究,可 知 此 方 法 的 創(chuàng) 新 之 處 在 于:1)建 立 了 機 床 的 運 動 學 … [了解更多]

05

2024-11

五軸加工中心和五軸鉆攻中心在機測量探頭補

在機測量技術由于其成本低、檢測效率高、無需二次裝夾等優(yōu)勢被廣泛用于零件加工測量當中,使得五軸加工中心和五軸鉆攻中心,同時又兼具測量功能。在機測量系統(tǒng)的構成如圖1所示,硬件部分主要是由高精度探頭、信號接收器、機床整個本體,軟件部分由機床控制系統(tǒng)、測量軟件等組成[8]。待零件加工完成… [了解更多]

05

2024-11

五軸加工中心進給系統(tǒng)動態(tài)誤差影響因素

?加工精度是影響機床性能和產(chǎn)品質量的主要難題,也是制約國家精密制造能力的重要因素。本文以五軸加工中心為對象,針對提升機床精度進行了研究。并且隨著科技的發(fā)展,精密的儀器和零件在生產(chǎn)實踐中占據(jù)的分量逐漸增加,在數(shù)控機床這種精密機器精度不斷提高的同時,必須控制內外界環(huán)境的隨機影響因素在… [了解更多]


產(chǎn)品中心

——
Powered by CmsEasy