請教:S7-300 PLC程序如何理解
劉玉蓉
發(fā)布于2014-10-17 16:52
1
0
標簽:
在我們公司設(shè)備PLC的程序里看到與變頻器通訊的這么兩段程序,一個是實數(shù)轉(zhuǎn)規(guī)格化FC21,一個是規(guī)格化轉(zhuǎn)實數(shù)FC20,不知所謂的規(guī)格化是什么意思?與實數(shù)是如何實現(xiàn)轉(zhuǎn)化的?另外,希望能詳細的解釋一下程序各個語句所實現(xiàn)的功能。
問題補充:
另外還有一張FC21的程序。
圖片說明: 1,FC20 規(guī)格化轉(zhuǎn)實數(shù).png;FC21實數(shù)轉(zhuǎn)規(guī)格化 2,fc21實數(shù)轉(zhuǎn)規(guī)格化.png
佳答案
由于CPU只能以二進制處理模擬值,對于具有相同標稱范圍的輸入值和輸出值來說,數(shù)字化的模擬值都相同,如0 – 27648可以表示0 – 10V,也可以表示4 – 20mA,也可以表示0 – 100%。
一般PLC與變頻器通過PROFIBUS現(xiàn)場總線通信是通過選擇報文結(jié)構(gòu)實現(xiàn)的,由于CPU只能以二進制處理模擬值,而任務報文中主設(shè)定和應答報文的運行實際參數(shù)都是整數(shù)值,即變頻器接收CPU的數(shù)據(jù)如PIW256是整數(shù)值,變頻器發(fā)送信息給CPU的的數(shù)據(jù)如PQW256也是整數(shù)值。要想實現(xiàn)CPU控制變頻器,以及將變頻器實際頻率反饋給CPU都需要規(guī)范化轉(zhuǎn)換,首先將主頻率設(shè)定值(整數(shù)值),通過規(guī)范化將FC21將設(shè)定的整數(shù)值(主設(shè)定值)轉(zhuǎn)換為變頻器設(shè)定的頻率(實數(shù)值),去控制變頻器;同樣應答報文的PZD第二個字是變頻器的實際參數(shù)(如這里指實際頻率),也必須進行規(guī)范化功能FC20轉(zhuǎn)換為實數(shù)給CPU處理;
在變頻器的主設(shè)定默認值中,一般16384(十六進制值4000hex)規(guī)范化的頻率值相當于50Hz。根據(jù)你的程序,你是用百分比來設(shè)定變頻器的主設(shè)定值(這里范圍0-100%,相當于0-16384)對應0-50Hz,其中100%相當于50Hz,那么給變頻器的主設(shè)定頻率(保存到暫態(tài)雙字LD10)的計算公式為[Write_Value X16384]/ Write_Max即為要求的頻率設(shè)定值百分比值。程序注釋如下:
L # Write_Value //將主設(shè)定值Write_Value裝載到累加器1中(百分比)
L 1.638400e+004 //將1.638400e+004裝載到累加器1中,主設(shè)定值Write_Value自動進入累加器2
*R //將主設(shè)定值Write_Value(百分比)與16384相乘,并裝入累加器1中
L #Write_Max //將主設(shè)定參數(shù)的大值裝載到累加器1,上述相乘的結(jié)果自動進入累加器2中
/R //將主設(shè)定值Write_Value(百分比)與16384相乘的結(jié)果除以大值Write_Max
T LD10 //將上述相除的結(jié)果傳送到暫態(tài)雙字LD10中
L LW12 //將暫態(tài)字LW12裝載到累加器1中