RM新时代网站-首页

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

一文詳解FC和FB的區(qū)別與用法

1bGT_GKYXT1508 ? 2018-01-31 12:45 ? 次閱讀

很多新手都會(huì)問(wèn),F(xiàn)C和FB到底什么區(qū)別呢?該怎么使用呢?其實(shí)很簡(jiǎn)單啦,仔細(xì)閱讀下面內(nèi)容就能理解哦!
FC塊講解首先,我們從兩者的名字就可以進(jìn)行區(qū)分,可以用一個(gè)公式即FB=FC+DB來(lái)表示,F(xiàn)B是具有DB背景塊的特殊FC,也就是說(shuō)FB具有FC的功能,同時(shí)擁有一個(gè)DB塊。FC全稱是Function函數(shù)。注:DB塊 全稱DataBlock 數(shù)據(jù)存儲(chǔ)區(qū)域,類似數(shù)據(jù)庫(kù)中關(guān)系表結(jié)構(gòu)。那首先什么函數(shù)呢?

函數(shù)

函數(shù) f(x)就像機(jī)器或黑箱,給予輸入值x便產(chǎn)生唯一輸出值f (x)。x是自變量,f(x)是因變量。舉一個(gè)我們常見(jiàn)的公式,求圓的面積,s=π*r*r。輸入r值,便得到圓的面積s,這就是最簡(jiǎn)單的函數(shù),r是自變量,s是因變量。

一文詳解FC和FB的區(qū)別與用法

圖一 變量聲明

一文詳解FC和FB的區(qū)別與用法

圖2 FC函數(shù)內(nèi)容Input:輸入型參數(shù),提供外部輸入接口。類似于函數(shù)f(x)中的x,是一個(gè)自變量。Input類型參數(shù),是外部變量的拷貝副本,修改其值,外部變量無(wú)變化。假設(shè)在程序中修改R的值,從圖2編譯信息發(fā)現(xiàn),傳遞的并不是實(shí)際參數(shù),所以修改外部接口變量無(wú)變化。Output:輸出型參數(shù),提供外部輸出接口。該類型參數(shù)由于直接引用外部變量地址,可以修改其值。InOut:輸入輸出型參數(shù),既做輸入又做輸出。同Output類型一樣,可以修改外部接口變量的值。在適當(dāng)?shù)胤?,使用InOut類型變量,可以減少占用plc的變量聲明空間。Temp:局部變量,在函數(shù)內(nèi)部使用,不提供外部的接口。我們常常把temp變量用于數(shù)據(jù)轉(zhuǎn)換的中間值,或者用于循環(huán)變量,比如用于For 或者While循環(huán)。由于Temp是局部變量,它的值是隨機(jī),使用必須初始化,對(duì)其賦值。Constant:常量,在函數(shù)內(nèi)部使用,意思是恒定不變的變量,只能在聲明處修改。

比如我們這里的π圓周率是固定不變的,可能調(diào)用的地方有幾十處,若程序中直接引用3.1415,后期修改,需要把每個(gè)地方都修改過(guò)去,很麻煩。在聲明處修改π值,所有函數(shù)中的π變量都會(huì)修改。假設(shè)我們?cè)诔绦蛑行薷摩谐A?,從圖2中編譯信息可以發(fā)現(xiàn),常量不能在程序中修改。Return:函數(shù)返回值,存儲(chǔ)計(jì)算結(jié)果。默認(rèn)為無(wú)返回值,所以聲明為void。在我們的數(shù)學(xué)知識(shí)里面函數(shù)應(yīng)該是要有返回值的,但是在TIA PORTAL可以沒(méi)有返回值,我們把這種無(wú)返回類型的函數(shù),稱為procedure(過(guò)程)。我們這里設(shè)置為Real類型,返回圓的面積。有讀者可能有疑問(wèn),return變量和Output類型都可以用來(lái)存儲(chǔ)計(jì)算結(jié)果,兩者的區(qū)別是什么呢?其中有一個(gè)顯著的區(qū)別是Output類型輸出參數(shù)可以聲明若干個(gè),但是return類型的返回變量,只能聲明一個(gè),且變量名字無(wú)法修改。其他區(qū)別,等講解SCL的時(shí)候,再做解答。在main[OB1]程序塊里面拖動(dòng)FC1函數(shù),得到如下運(yùn)行結(jié)果:

一文詳解FC和FB的區(qū)別與用法

圖3 程序運(yùn)行結(jié)果

圖4 DB塊值監(jiān)控程序解讀:由于PLC程序是從左到右執(zhí)行,所以"Func"函數(shù)塊的左側(cè)是輸入接口,右側(cè)是輸出接口。觀察函數(shù)塊的內(nèi)部變量名字,發(fā)現(xiàn)和函數(shù)中的聲明一一對(duì)應(yīng),除了變量。Ret_Val是Return接口變量的別名,由于每個(gè)函數(shù)的名字都不一樣,所以統(tǒng)一用作為函數(shù)返回值變量的名稱。程序一是對(duì)模擬量值進(jìn)行轉(zhuǎn)換,采樣的分辨率下限是0,上限為27648,采樣的數(shù)字量值15000,通過(guò)調(diào)用指定函數(shù)把轉(zhuǎn)換出來(lái)的值放在變量<"Data".電壓值>,得到轉(zhuǎn)換值為0.5425347.把變量<"Data".電壓值>放在FC函數(shù)的Inout接口中,利用PLC的掃描周期,通過(guò)DB塊可以看到最終值5.425347。若不放在Inout,把其放在Input接口,我們必須在OutPut接口再聲明一個(gè)變量,用于存儲(chǔ)最終的轉(zhuǎn)換值。這樣聲明就可以節(jié)省PLC的內(nèi)存空間了,同樣使程序看起來(lái)更簡(jiǎn)潔。FC函數(shù)塊的代碼內(nèi)容比較簡(jiǎn)單,請(qǐng)自行閱讀理解,若有問(wèn)題,可以留言。

FB塊講解要了解FB和FC的區(qū)別,讓我們剖析一下這兩個(gè)模塊的變量聲明結(jié)構(gòu):

一文詳解FC和FB的區(qū)別與用法

圖5 FB塊變量聲明

一文詳解FC和FB的區(qū)別與用法

圖6 FB占用DB背景塊內(nèi)部變量通過(guò)FB和FC的變量聲明,我們可以看到三個(gè)明顯的區(qū)別:1、FB塊增加了Static靜態(tài)區(qū)聲明2、FB增加了保持性和可訪問(wèn)性選擇上述兩個(gè)區(qū)別正好說(shuō)明了FB=FC+DB公式的成立,因?yàn)檫@兩個(gè)特性是DB塊才有的特性哦。我們?cè)谄胀―B塊里面聲明的變量都在Static區(qū)聲明,不信的話,你可以打開(kāi)來(lái)看看。我們可以通過(guò)訪問(wèn)FB擁有的背景塊來(lái)訪問(wèn)FB中變量的值。當(dāng)FC調(diào)用結(jié)束后,各種接口中聲明的變量值無(wú)法保存,F(xiàn)B調(diào)用結(jié)束后,仍然可以保留變量的值,你可以通過(guò)FB的背景DB塊進(jìn)行訪問(wèn)。FB的每次調(diào)用都會(huì)自動(dòng)生成一個(gè)DB塊,想想我們編程當(dāng)中,進(jìn)行哪類操作也會(huì)有類似行為?其實(shí)就是我們用的非常頻繁的定時(shí)器操作,每一次拖動(dòng)定時(shí)器都會(huì)自動(dòng)建立一個(gè)DB塊。通過(guò)<系統(tǒng)資源>查看定時(shí)器擁有的DB塊,看看和圖6是否類似。

圖7 定時(shí)器DB背景塊結(jié)構(gòu)由于定時(shí)器擁有背景塊,當(dāng)我們停止計(jì)時(shí)后,PLC無(wú)論經(jīng)過(guò)多少個(gè)掃描周期,還是可以讀取停止計(jì)時(shí)時(shí)刻的值,這就是擁有DB背景塊的好處,F(xiàn)B塊與此類似。3、FB塊沒(méi)有Return接口由于可以通過(guò)Output接口存儲(chǔ)返回值,所以沒(méi)有Return接口影響不大。

圖8 FB程序增加部分由于程序類似,F(xiàn)B程序只列出增加部分。我們可以看到該程序,每次調(diào)用都會(huì)把最大電壓值放在變量中,同時(shí)添加變量,用于記錄改變電壓的時(shí)間。在hmi程序上面,我們可以很方便讀取這兩個(gè)變量,來(lái)實(shí)時(shí)獲取當(dāng)前的最大電壓值和修改時(shí)間,是不是很方便?讀者可能會(huì)有疑問(wèn),如果我自己寫(xiě)一個(gè)FC函數(shù),然后外部添加一個(gè)DB塊,不是一樣可以實(shí)現(xiàn)此功能嗎?看上去好像講的很有道理呀,不過(guò)這個(gè)想法是錯(cuò)誤的。如果你在PLC程序中只調(diào)用FB塊一次,那么可以采用此方法。如果你在PLC程序里面,既要比較電壓,還要比較如電流、溫度和濕度等,如果用同一個(gè)FC怎么實(shí)現(xiàn)呢?用FB可以很好的解決此問(wèn)題,不明白的,可要仔細(xì)想想!

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • plc
    plc
    +關(guān)注

    關(guān)注

    5010

    文章

    13271

    瀏覽量

    463043
  • DB
    DB
    +關(guān)注

    關(guān)注

    0

    文章

    48

    瀏覽量

    22710
  • FC
    FC
    +關(guān)注

    關(guān)注

    1

    文章

    77

    瀏覽量

    42000

原文標(biāo)題:西門子PLC FC和FB用法講解

文章出處:【微信號(hào):GKYXT1508,微信公眾號(hào):工控云學(xué)堂】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    西門子PLC編程功能塊FB和功能FC的不同之處是什么

    程序調(diào)用(也可以調(diào)用其他子程序)。他們的最大區(qū)別是,FB與DB配合使用,DB中保存著FB使用的數(shù)據(jù),即使FB退出后也會(huì)直保留。
    發(fā)表于 12-02 14:15

    西門子PLC編程中FBFC區(qū)別

    用西門子PLC編程時(shí),可以用到功能塊FB和功能FC(FB、FC都是組織塊)資料上說(shuō)FBFC都可
    發(fā)表于 06-20 10:54 ?1.6w次閱讀

    XMEGA PWM模塊多通道的用法詳解

    本文主要詳解XMEGA PWM模塊多通道的用法,具體的跟隨小編來(lái)了解下。
    的頭像 發(fā)表于 06-18 14:09 ?4336次閱讀
    XMEGA PWM模塊多通道的<b class='flag-5'>用法</b><b class='flag-5'>詳解</b>

    帶你了解PLC中FBFC塊的區(qū)別

    本文首先介紹了PLC的FBFC是什么意思及它們的優(yōu)缺點(diǎn),其次介紹了PLC中FBFC塊的區(qū)別,最后用西門子舉例說(shuō)明了
    發(fā)表于 04-18 18:32 ?3.7w次閱讀

    使用FB65但RFID與PC的連接DB用法區(qū)別

    同樣是使用使用FB65但RFID與PC的連接DB用法定的區(qū)別: 首先說(shuō)下什么是FB65:
    的頭像 發(fā)表于 12-03 16:28 ?3667次閱讀

    PLC控制中FBFC塊的不同之處

    學(xué)習(xí)plc時(shí)特別難理解FBFC區(qū)別用法。接下來(lái),我們來(lái)談?wù)勊鼈兊?b class='flag-5'>區(qū)別和用法。 帶背景數(shù)據(jù)塊
    發(fā)表于 12-14 14:34 ?4176次閱讀

    OB FC FB塊如何使用

    在學(xué)習(xí)和使用博途軟件時(shí)常常使用到OB FC FB塊那么這樣塊如何使用,今天就給大家?guī)?lái)FC塊的使用,本文章采用啟保停程序設(shè)計(jì)。
    的頭像 發(fā)表于 08-15 10:44 ?6623次閱讀

    CMake用法詳解

    CMake用法詳解
    發(fā)表于 10-25 16:28 ?2次下載

    西門子PLC中FBFC區(qū)別、管腳定義、臨時(shí)變量

    、FBFC區(qū)別 1、FB功能塊,帶背景數(shù)據(jù)塊 FC--功能,相當(dāng)于函數(shù); 2、
    的頭像 發(fā)表于 11-16 16:11 ?7780次閱讀

    詳解西門子PLC中函數(shù)FCFB的應(yīng)用與區(qū)別

    本質(zhì)上,FB,FC的實(shí)現(xiàn)目的是相同的,無(wú)論何種邏輯要求,FB,FC均可實(shí)現(xiàn),只是實(shí)現(xiàn)方式效率不同,這也和工程師個(gè)人編程習(xí)慣有關(guān);
    的頭像 發(fā)表于 11-25 15:55 ?3194次閱讀

    西門子PLC中函數(shù)FCFB的應(yīng)用與區(qū)別

    1、FB功能塊,帶背景數(shù)據(jù)塊 FC——功能,相當(dāng)于函數(shù);2、FB,FC塊均相當(dāng)于子程序,既可以調(diào)用其它FB,
    的頭像 發(fā)表于 11-30 16:59 ?2563次閱讀

    西門子FBFC之間的主要區(qū)別

    本質(zhì)上,FBFC的實(shí)現(xiàn)目的是相同的,無(wú)論何種邏輯要求,FBFC均可實(shí)現(xiàn),只是實(shí)現(xiàn)方式效率不同,這也和工程師個(gè)人編程習(xí)慣有關(guān)。
    發(fā)表于 12-16 09:58 ?3921次閱讀

    西門子FCFB究竟有啥區(qū)別

    ? 、FBFC區(qū)別? ? 1、FB功能塊,帶背景數(shù)據(jù)塊 FC——功能,相當(dāng)于函數(shù); 2、
    的頭像 發(fā)表于 12-19 15:18 ?5179次閱讀

    PLC編程中OB塊、FC塊、FB塊、DB塊的使用原則

    西門子新加塊中包含組織塊(OB)、函數(shù)塊(FB)、函數(shù)(FC)、數(shù)據(jù)塊(DB)
    發(fā)表于 05-24 15:01 ?1.5w次閱讀
    PLC編程中OB塊、<b class='flag-5'>FC</b>塊、<b class='flag-5'>FB</b>塊、DB塊的使用原則

    詳解pcb和smt的區(qū)別

    詳解pcb和smt的區(qū)別
    的頭像 發(fā)表于 10-08 09:31 ?3341次閱讀
    RM新时代网站-首页