女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

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

3天內不再提示

使用SCL語言開發上升沿或下降沿指令

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

1.1沿指令概述

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

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

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

圖1

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

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

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

圖2

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

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

1.2開發檢測上升沿指令

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

新建FC

新建FC并選擇編程語言為SCL,FC塊命名為:RisingEdgeDetection,如圖3所示:

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

圖3

定義接口

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

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

圖4

編程

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

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

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

RisingEdgeDetection輸出持續一個周期。

程序代碼如圖5所示:

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

圖5

1.3開發檢測下降沿指令

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

當#signal由1變成0時,此時作為邊沿存儲位的#thirdVariable仍保留#singal信號上一周期的狀態,#thirdVariable為True,此時滿足IF語句,FallingEdgeDetection被賦值為True。

當#signal由1變成0后的下一周期,#thirdVariable上個周期已被#signal賦值為相同狀態,即#thirdVariable和#signal都為False,則不再滿足IF語言,FallingEdgeDetection被賦值為False。

FallingEdgeDetection輸出持續一個周期。

程序代碼如圖6所示:

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

圖6

1.4功能測試

使用開發完成的功能塊,檢測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效果比對

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

工藝功能要求:

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

1.5.1使用R_TRIG實現相關工藝功能

使用R_TRIG指令實現過程,如圖9所示。

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

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

圖9

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

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

圖10

1.5.2使用RisingEdgeDetection實現相關工藝功能

使用RisingEdgeDetection指令實現過程,如圖11所示。

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

圖11

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

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

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

圖12

1.6總結

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

審核編輯:湯梓紅

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • plc
    plc
    +關注

    關注

    5030

    文章

    13700

    瀏覽量

    472036
  • 指令
    +關注

    關注

    1

    文章

    614

    瀏覽量

    36226
  • SIMATIC
    +關注

    關注

    1

    文章

    231

    瀏覽量

    16191
  • SCL
    SCL
    +關注

    關注

    1

    文章

    243

    瀏覽量

    17455
  • S7-1500
    +關注

    關注

    3

    文章

    301

    瀏覽量

    6734

原文標題:1.1

文章出處:【微信號:中泰PLC自動化教學,微信公眾號:中泰PLC自動化教學】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦
    熱點推薦

    方波上升沿下降沿問題

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

    按鍵上升沿下降沿的判斷

    按鍵上升沿下降沿的判斷:遇到判定感應器從OFF->ON->OFF怎樣實現,要有上升沿
    發表于 04-11 12:28

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

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

    布爾量上升沿下降沿檢測

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

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

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

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

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

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

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

    上升沿觸發與下降沿觸發

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

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

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

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

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

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

    使用“ 掃描 RLO 的信號上升沿指令,可查詢邏輯運算結果的信號狀態是否從“0”變為“1”。
    的頭像 發表于 02-20 17:01 ?4853次閱讀

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

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

    淺析PLC的上升沿下降沿

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

    rs觸發器是上升沿還是下降沿 觸發器如何確定是上升沿

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

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

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