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

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

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

使用SCL語言開發(fā)上升沿或下降沿指令

laidenongfhs ? 來源:中泰PLC自動化教學(xué) ? 2023-07-20 14:20 ? 次閱讀

1.1沿指令概述

沿指令即在程序中用于檢測信號的上升沿或下降沿的指令。

SIMATIC S7-1500和S7-1200 PLC中,選擇編程語言為SCL時,可以看到TIA Portal軟件自帶兩個指令分別用于檢測信號的上升沿和下降沿,如圖1所示:

32a6efee-26c3-11ee-962d-dac502259ad0.png

圖1

在程序中調(diào)用R_TRIG或F_TRIG時,系統(tǒng)會自動生成1個背景DB塊,用于存放檢測信號的邊沿存儲位,當(dāng)程序中有較多信號需要檢測上升沿或下降沿時,就會產(chǎn)生多個背景DB塊,這樣一來,過多的背景DB塊不僅僅不便于管理,且會過多占用CPU寶貴的存儲區(qū)。

以SIMATIC S7-1200 PLC為例,存儲區(qū)分為工作存儲區(qū),裝載存儲區(qū),保持性存儲區(qū),其中工作存儲區(qū)和保持性存儲區(qū)不可擴展,不同的CPU具有不同大小的存儲區(qū),如圖2所示:

32c0a524-26c3-11ee-962d-dac502259ad0.png

圖2

假設(shè)選定S7-1211C進行編程,如果在程序中應(yīng)用了很多R_TRIG或F_TRIG指令,則實際程序需要的工作存儲區(qū)有可能超過50kB,此時需要更換工作存儲區(qū)更大的PLC來加以解決,所以適當(dāng)優(yōu)化程序,占用較少的工作存儲區(qū),十分必要。

本文以S7-1200為例,皆在闡釋如何使用SCL語言開發(fā)沿指令以減少工作存儲區(qū)使用。

1.2開發(fā)檢測上升沿指令

為了不產(chǎn)生背景DB塊,我們在FC中使用SCL語言進行開發(fā),并引入第三方變量作為檢測信號的邊沿存儲位。

新建FC

新建FC并選擇編程語言為SCL,F(xiàn)C塊命名為:RisingEdgeDetection,如圖3所示:

32d8c15e-26c3-11ee-962d-dac502259ad0.png

圖3

定義接口

根據(jù)編程需要定義接口變量,并寫明注釋,修改Return變量的數(shù)據(jù)類型為Bool,用于輸出上升沿信號,持續(xù)一個周期,如圖4所示:

32eb1598-26c3-11ee-962d-dac502259ad0.png

圖4

編程

根據(jù)上升沿檢測原理進行編程,編程思想如下:

當(dāng) #signal由0變成1時,此時作為邊沿存儲位的 #thirdVariable仍保留 #singal信號上一周期的狀態(tài),#thirdVariable為False,此時滿足IF語句,RisingEdgeDetection被賦值為True。

當(dāng) #signal由0變成1后的下一周期,#thirdVariable上個周期已被 #signal賦值為相同狀態(tài),即 #thirdVariable和 #signal都為True,則不再滿足IF語言,RisingEdgeDetection被賦值為False。

RisingEdgeDetection輸出持續(xù)一個周期。

程序代碼如圖5所示:

331152a8-26c3-11ee-962d-dac502259ad0.png

圖5

1.3開發(fā)檢測下降沿指令

與開發(fā)檢測上升沿指令類似,新建FC并定義接口變量,這里不再一一贅述。在編程上兩者有所不同,其編程思想如下:

當(dāng)#signal由1變成0時,此時作為邊沿存儲位的#thirdVariable仍保留#singal信號上一周期的狀態(tài),#thirdVariable為True,此時滿足IF語句,F(xiàn)allingEdgeDetection被賦值為True。

當(dāng)#signal由1變成0后的下一周期,#thirdVariable上個周期已被#signal賦值為相同狀態(tài),即#thirdVariable和#signal都為False,則不再滿足IF語言,F(xiàn)allingEdgeDetection被賦值為False。

FallingEdgeDetection輸出持續(xù)一個周期。

程序代碼如圖6所示:

33276f5c-26c3-11ee-962d-dac502259ad0.png

圖6

1.4功能測試

使用開發(fā)完成的功能塊,檢測Q0.0的上升沿和下降沿,編程代碼如圖7所示,Trace時序圖如圖8所示。

其中:

Data.thirdVariable1為檢測上升沿指令所用到的第三方變量;

RisingEdgeDetection為輸出上升沿;

Data.thirdVariable2為檢測下降沿指令所用到的第三方變量;

FallingEdgeDetection為輸出下降沿。

3359fa1c-26c3-11ee-962d-dac502259ad0.png

圖7

336a051a-26c3-11ee-962d-dac502259ad0.png

圖8

1.5效果比對

為了更好的說明該自行開發(fā)沿指令的優(yōu)勢,我們分別使用R_TRIG指令和RisingEdgeDetection指令編寫相同的工藝功能程序,通過對比兩者所占用工作存儲區(qū)大小的差異,加以說明。

工藝功能要求:

利用S7-1214C,使用SCL編程語言編程,在FB1中實現(xiàn)1000個Bool信號的上升沿檢測。

1.5.1使用R_TRIG實現(xiàn)相關(guān)工藝功能

使用R_TRIG指令實現(xiàn)過程,如圖9所示。

R_TRIG在FB1中以多重背景形式調(diào)用,方便R_TRIG背景DB塊的管理。

3383fb64-26c3-11ee-962d-dac502259ad0.png

圖9

編譯完成后,在程序信息中查看存儲區(qū)使用情況,如圖10所示,工作存儲區(qū)已被占用10%。Test_IDB為FB1的背景DB塊。

33a0a98a-26c3-11ee-962d-dac502259ad0.png

圖10

1.5.2使用RisingEdgeDetection實現(xiàn)相關(guān)工藝功能

使用RisingEdgeDetection指令實現(xiàn)過程,如圖11所示。

33d0a20c-26c3-11ee-962d-dac502259ad0.png

圖11

編譯完成后,在程序信息中查看存儲區(qū)使用情況,如圖12所示,工作存儲區(qū)已被占用3%。

Test_IDB為FB1的背景DB塊。Data用于存儲第三方變量,變量類型為Array [0…999] of Bool。

33e6b25e-26c3-11ee-962d-dac502259ad0.png

圖12

1.6總結(jié)

從上述分析中,我們可以得出自行開發(fā)的沿指令RisingEdgeDetection、FallingEdgeDetection比R_TRIG、F_TRIG指令占用更少的工作存儲區(qū)空間,且適用于SIMATIC S7-1200及S7-1500 PLC。

審核編輯:湯梓紅

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

    關(guān)注

    5011

    文章

    13299

    瀏覽量

    463434
  • 指令
    +關(guān)注

    關(guān)注

    1

    文章

    607

    瀏覽量

    35716
  • SIMATIC
    +關(guān)注

    關(guān)注

    1

    文章

    231

    瀏覽量

    15759
  • SCL
    SCL
    +關(guān)注

    關(guān)注

    1

    文章

    239

    瀏覽量

    17084
  • S7-1500
    +關(guān)注

    關(guān)注

    3

    文章

    300

    瀏覽量

    6409

原文標(biāo)題:1.1

文章出處:【微信號:中泰PLC自動化教學(xué),微信公眾號:中泰PLC自動化教學(xué)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    方波上升沿下降沿問題

    有一個方波信號,如何得到它的上升沿時間和下降沿時間,最大值和最小值這幾個量,lv中前兩個有沒有直接的控件能夠得到結(jié)果,沒有控件該怎么樣才能得到方波的
    發(fā)表于 07-10 22:41

    按鍵上升沿下降沿的判斷

    按鍵上升沿下降沿的判斷:遇到判定感應(yīng)器從OFF->ON->OFF怎樣實現(xiàn),要有上升沿
    發(fā)表于 04-11 12:28

    計算波形圖中上升沿下降沿的個數(shù)及上升沿下降沿的時間。

    拋磚引玉,提供一個簡易程序,這個程序如果數(shù)據(jù)最后是保持在下降沿,那么此程序沒有問題。如果數(shù)據(jù)最后處于上升沿,則程序的下降
    發(fā)表于 11-23 09:36

    布爾量上升沿下降沿檢測

    布爾量上升沿下降沿檢測
    發(fā)表于 10-11 14:27

    KEA8 KBI下降沿上升沿問題求解

    我正在FRDM - KEAZ128 上開發(fā)新代碼,我需要在下降沿上升沿攔截單個引腳上的中斷,但從文檔來看,似乎只能使用
    發(fā)表于 03-23 07:53

    上升沿下降沿什么意思?如何理解?

    字面理解上升沿下降沿,是一個變量變化的一瞬間,是一個無窮小的時間。但是在plc的程序里最小的時間單位就是掃描周期,所以所謂的沿就是一個掃描
    發(fā)表于 03-12 10:27 ?6.5w次閱讀

    PLC上升下降沿不工作的原因是什么

    上升下降沿不工作也是一種常見的錯誤,盡管手冊中“P”“N”指令允許的數(shù)據(jù)類型為:I,Q,M ,L,D . 但如果沒有特殊目的,僅建議使
    的頭像 發(fā)表于 11-07 10:55 ?9198次閱讀
    PLC<b class='flag-5'>上升</b><b class='flag-5'>或</b><b class='flag-5'>下降</b><b class='flag-5'>沿</b>不工作的原因是什么

    上升沿觸發(fā)與下降沿觸發(fā)

    假設(shè)PA0為 低 電平開關(guān)按下后電平被拉 高,配置為上升沿 則按鍵按下為1,若 配置為下降沿 則 按鍵彈開為1上升
    發(fā)表于 11-19 19:06 ?23次下載
    <b class='flag-5'>上升</b><b class='flag-5'>沿</b>觸發(fā)與<b class='flag-5'>下降</b><b class='flag-5'>沿</b>觸發(fā)

    上升沿下降沿是什么意思?

    從字面上理解上升沿下降沿是一個變量變化的時刻和一個無窮小的時間。但是plc程序中最小的時間單位是掃描周期,所以所謂的邊沿就是一個掃描周期。 ? ?上例中使用的bTrig變量都是用來讓
    發(fā)表于 12-08 17:58 ?1w次閱讀

    西門子plc上升沿下降沿的理解

    西門子上升沿、下降沿的理解:上升沿就是在信號從斷開到接通的那一瞬間接通,
    發(fā)表于 12-24 15:54 ?9419次閱讀

    安全PLC使用的上升沿下降沿

    使用“ 掃描 RLO 的信號上升沿指令,可查詢邏輯運算結(jié)果的信號狀態(tài)是否從“0”變?yōu)椤?”。
    的頭像 發(fā)表于 02-20 17:01 ?4340次閱讀

    西門子1200上升沿下降沿的操作流程

    通過上面的這個程序,我們就得到了上升沿信號和下降沿信號。比如說,當(dāng)形參“I_請求1”的實參”I0.0”從0變1時,那么形參“上升
    發(fā)表于 06-01 16:49 ?4480次閱讀
    西門子1200<b class='flag-5'>上升</b><b class='flag-5'>沿</b>和<b class='flag-5'>下降</b><b class='flag-5'>沿</b>的操作流程

    淺析PLC的上升沿下降沿

    有網(wǎng)友留言說:上升沿就是在信號從斷開到接通的那一瞬間接通,下降沿就是在信號從接通到斷開的那一瞬間接通。但是現(xiàn)在的問題它的實際用處是用在哪一些情況。我身邊也有PLC可以做個什么實驗來體驗
    的頭像 發(fā)表于 07-26 09:24 ?3849次閱讀

    rs觸發(fā)器是上升沿還是下降沿 觸發(fā)器如何確定是上升沿

    在基本的RS觸發(fā)器中,觸發(fā)器的輸出將在時鐘信號的上升沿下降沿發(fā)生變化。當(dāng)時鐘信號的上升
    的頭像 發(fā)表于 09-12 12:52 ?9079次閱讀

    上升沿下降沿是什么意思 上升沿下降沿有何作用

    上升沿下降沿是什么意思 上升沿下降
    的頭像 發(fā)表于 02-06 14:50 ?1.6w次閱讀