91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

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

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

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

學(xué)會(huì)高效編程及定義程序結(jié)構(gòu)

vveeverything ? 來(lái)源:跟我學(xué)PLC吧 ? 2023-01-31 14:39 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

為了結(jié)構(gòu)化程序設(shè)計(jì),STEP 7將用戶(hù)程序分類(lèi)歸并為不同的塊,根據(jù)程序要求,可選用組織塊(OB)、功能塊(FB)、或功能(FC)三種類(lèi)型的邏輯塊,而數(shù)據(jù)塊(DB)或(DI)則用來(lái)存儲(chǔ)執(zhí)行用戶(hù)程序時(shí)所需的數(shù)據(jù)。

三種編程方法:

(1)線(xiàn)性編程:將整個(gè)用戶(hù)程序?qū)懺谝粋€(gè)指令連續(xù)的塊中,處理器線(xiàn)性地或順序地掃描程序的每條指令。

(2)分部編程:將用戶(hù)程序分成相對(duì)獨(dú)立的指令塊、每個(gè)塊包含給定的部件組或作業(yè)組的控制邏輯。

(3)結(jié)構(gòu)化編程:要求用戶(hù)程序提供一些通用的指令塊,以便控制一類(lèi)相似或相同的部件,給通用指令提供的參數(shù)進(jìn)一步說(shuō)明各部件的控制差異。

一、數(shù)據(jù)塊及其數(shù)據(jù)結(jié)構(gòu)

用戶(hù)程序運(yùn)行所需的大量數(shù)據(jù)或變量存儲(chǔ)在數(shù)據(jù)塊中,數(shù)據(jù)塊也是實(shí)現(xiàn)各邏輯塊之間交換、傳遞和共享數(shù)據(jù)的重要途徑。對(duì)于CPU 314,用作數(shù)據(jù)塊的存儲(chǔ)器最多8KB,用戶(hù)定義的數(shù)據(jù)總量不能超過(guò)這個(gè)限制。對(duì)于數(shù)據(jù)塊必須遵循先定義后使用的原則。

1、定義數(shù)據(jù)塊

定義內(nèi)容包括數(shù)據(jù)塊號(hào)及塊中的變量(包括:變量符號(hào)名,數(shù)據(jù)類(lèi)型以及初始值等)。數(shù)據(jù)塊在使用前,必須作為用戶(hù)程序的一部分下載到CPU 中。

2、訪問(wèn)數(shù)據(jù)塊

訪問(wèn)時(shí)需要明確數(shù)據(jù)塊號(hào)和數(shù)據(jù)塊中的數(shù)據(jù)類(lèi)型與位置。根據(jù)明確數(shù)據(jù)塊號(hào)的不同方法,可以用以多種方法訪問(wèn)數(shù)據(jù)塊中的數(shù)據(jù)。

3168c9c4-a115-11ed-bfe3-dac502259ad0.png

由于有兩個(gè)數(shù)據(jù)塊寄存器(DB和DI寄存器),所以,最多可以同時(shí)打開(kāi)兩個(gè)數(shù)據(jù)塊。一個(gè)作為背景數(shù)據(jù)塊,數(shù)據(jù)塊的起始地址存儲(chǔ)在DI寄存 器中;另一個(gè)作為共享數(shù)據(jù)塊,數(shù)據(jù)塊的起始地址存儲(chǔ)在DB寄存器中。

打開(kāi)背景數(shù)據(jù)塊,在調(diào)用FB時(shí)可以自動(dòng)實(shí)現(xiàn),由于調(diào)用FB時(shí)使用DI 寄存器,所以,一般不在FB程序中用OPN DI n指令打開(kāi)數(shù)據(jù)塊。

3、背景數(shù)據(jù)塊和共享數(shù)據(jù)塊

任何FB、FC或OB均可讀寫(xiě)存放在共享數(shù)據(jù)塊中的數(shù)據(jù)。背景數(shù)據(jù)塊是FB運(yùn)行時(shí)的工作存儲(chǔ)區(qū),它存放FB的部分運(yùn)行變量。調(diào)用FB時(shí), 必須指定一個(gè)相關(guān)的背景數(shù)據(jù)塊。

作為規(guī)則,只有FB塊才能訪問(wèn)存放 在背景數(shù)據(jù)塊中的數(shù)據(jù)。一般情況下,每個(gè)FB都有一個(gè)對(duì)應(yīng)的背景數(shù) 據(jù)塊,一個(gè)FB也可以使用不同的背景數(shù)據(jù)塊。如果幾個(gè)FB需要的背景數(shù)據(jù)完全相同,為節(jié)省存儲(chǔ)器,則可以定義成一個(gè)背景數(shù)據(jù)塊,供它們分別使用。

二、數(shù)據(jù)結(jié)構(gòu)

3189289a-a115-11ed-bfe3-dac502259ad0.png

1、用戶(hù)數(shù)據(jù)類(lèi)型

STEP 7允許將基本或復(fù)式組合成“用戶(hù)”自已定義的數(shù)據(jù)類(lèi)型,這種類(lèi)型稱(chēng)為用戶(hù)數(shù)據(jù)類(lèi)型(UDT)。用戶(hù)數(shù)據(jù)類(lèi)型必須首先單獨(dú)建立,并存放 在稱(chēng)為UDT的特殊數(shù)據(jù)塊中。

建立用戶(hù)數(shù)據(jù)類(lèi)型的目的,是為了將UDT作為一種數(shù)據(jù)類(lèi)型使用,以方便定義多個(gè)結(jié)構(gòu)相同的構(gòu)造變量。

2、功能塊編程及調(diào)用

一個(gè)程序由許多部分(子程序)組成,STEP 7將這些部分稱(chēng)為邏輯塊,并允許塊間相互調(diào)用。

319bfee8-a115-11ed-bfe3-dac502259ad0.png

功能塊由兩個(gè)主要部分組成:一部分是每個(gè)功能塊的變量聲明表,變量聲表聲明此塊的局部數(shù)據(jù);另一部分是邏輯指令組成的程序,程序要用到變量聲明表中給出的局部數(shù)據(jù)。

當(dāng)調(diào)用功能塊時(shí),需要提供塊執(zhí)行時(shí)要用到的數(shù)據(jù)或變量,也就是將外部數(shù)據(jù)傳遞給功能塊,這稱(chēng)為參數(shù)傳遞。

3、變量聲明表(局部數(shù)據(jù))

局部數(shù)據(jù)分為參數(shù)和局部變量?jī)纱箢?lèi),局部變量又包括靜態(tài)變量和臨時(shí)變量(暫態(tài)變量)兩種。參數(shù)是在調(diào)用塊和被調(diào)用塊間傳遞的數(shù)據(jù)。靜態(tài)變量和臨時(shí)變量是僅供邏輯塊本身使用的數(shù)據(jù)。

31b1cade-a115-11ed-bfe3-dac502259ad0.jpg

4、邏輯塊局部數(shù)據(jù)的數(shù)據(jù)類(lèi)型

在變量聲明表中,要明確局部數(shù)據(jù)的數(shù)據(jù)類(lèi)型,這樣操作系統(tǒng)才能給變量分配確定的存儲(chǔ)空間。局部數(shù)據(jù)可以是基本數(shù)據(jù)類(lèi)型或是復(fù)式數(shù)據(jù)類(lèi)型, 也可以是專(zhuān)門(mén)用于參數(shù)傳遞的所謂“參數(shù)類(lèi)型”。

31cd65a0-a115-11ed-bfe3-dac502259ad0.jpg

STEP 7對(duì)分配給塊局部數(shù)據(jù)(在變量聲明表中)的數(shù)據(jù)類(lèi)型(基本、復(fù)式、參數(shù))是有一定限制的。

31ef3734-a115-11ed-bfe3-dac502259ad0.jpg

STEP 7允許用物理地址(絕對(duì)地址)或符號(hào)地址或常數(shù)等形式作為實(shí)參給形參賦值,但對(duì)于不同的形參類(lèi)型,STEP 7限制了賦值形式。

32009ed4-a115-11ed-bfe3-dac502259ad0.png

5、功能塊編程與調(diào)用舉例

對(duì)功能塊編程分兩步進(jìn)行:第一步工作是定義局部變量(填寫(xiě)局部變量表);第二步是編寫(xiě)要執(zhí)行的程序。寫(xiě)功能塊程序時(shí),可以?xún)煞N方式使用局部變量:

①使用變量名,此時(shí)變量名前綴“#”,以區(qū)別于在符號(hào)表中定義的符號(hào)地址,增量方式下,前綴 會(huì)自動(dòng)產(chǎn)生;

②直接使用局部變量的地址,這種方式只對(duì)背景數(shù)據(jù)塊和L堆棧有效。

例一:二分頻器

二分頻器是一種具有一個(gè)輸入端和一個(gè)輸出端的功能單元,輸出頻率為輸入頻率的一半。

(1)FC1的變量聲明表

32144362-a115-11ed-bfe3-dac502259ad0.png

(2)FC1梯形圖程序

32956172-a115-11ed-bfe3-dac502259ad0.png

(3)OB1調(diào)用梯形圖程序

32a82e38-a115-11ed-bfe3-dac502259ad0.png

例二:時(shí)鐘脈沖發(fā)生器

使用定時(shí)器實(shí)現(xiàn)自由設(shè)定時(shí)鐘脈沖發(fā)生器功能脈沖占空系數(shù)1:1。

(1)FC1變量聲明表

32c7470a-a115-11ed-bfe3-dac502259ad0.png

(2)FC1梯形圖程序

32e35c2e-a115-11ed-bfe3-dac502259ad0.jpg

(3)OB1調(diào)用梯形圖程序

32f0b676-a115-11ed-bfe3-dac502259ad0.png


三、可編程序控制器應(yīng)用設(shè)計(jì)

PLC系統(tǒng)設(shè)計(jì)步驟:

3301349c-a115-11ed-bfe3-dac502259ad0.jpg

審核編輯 :李倩

聲明:本文內(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)投訴
  • 存儲(chǔ)器
    +關(guān)注

    關(guān)注

    39

    文章

    7739

    瀏覽量

    171679
  • 數(shù)據(jù)
    +關(guān)注

    關(guān)注

    8

    文章

    7335

    瀏覽量

    94778
  • 編程
    +關(guān)注

    關(guān)注

    90

    文章

    3716

    瀏覽量

    97191

原文標(biāo)題:西門(mén)子PLC|學(xué)會(huì)高效編程及定義程序結(jié)構(gòu)

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

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    結(jié)構(gòu)體聲明與定義

    符號(hào)整數(shù)表示 } 這樣,我們就相當(dāng)于描繪好了一個(gè)框架,以后要用的話(huà)直接定義一個(gè)這種類(lèi)型的變量就好了。 2、定義 我們剛剛申請(qǐng)了一個(gè)名叫Info的結(jié)構(gòu)體類(lèi)型,那么理論上我們可以像聲明其他變量的操作
    發(fā)表于 12-11 07:52

    單片機(jī)C語(yǔ)言編程的心得

    規(guī)范程序結(jié)構(gòu)化設(shè)計(jì)的需要,既可以實(shí)現(xiàn)大型程序的模塊化,又可以實(shí)現(xiàn)根各模塊的連接調(diào)試。 1、.H文件介紹: 在單片機(jī)C程序設(shè)計(jì)中,項(xiàng)目一般按功能模塊化進(jìn)行結(jié)構(gòu)化設(shè)計(jì)。將一個(gè)項(xiàng)目劃分為多
    發(fā)表于 12-08 07:44

    C語(yǔ)言的編程技巧

    和效率?:通過(guò)位段、內(nèi)聯(lián)匯編和尾遞歸優(yōu)化等技巧,可以有效提高代碼的執(zhí)行效率。 ?10、內(nèi)存管理和系統(tǒng)級(jí)編程?:通過(guò)內(nèi)存池技術(shù)、復(fù)合字面量初始化結(jié)構(gòu)體以及信號(hào)處理等功能,實(shí)現(xiàn)高效的內(nèi)存管理和系統(tǒng)級(jí)
    發(fā)表于 11-27 06:46

    C語(yǔ)言程序結(jié)構(gòu)

    )(void); //處理程序   uInt8 ms_count; //時(shí)間片大小   } _op_;   數(shù)據(jù)結(jié)構(gòu)定義好之后,接著就是實(shí)現(xiàn)代碼,包括三部分,即初始化數(shù)據(jù)、時(shí)間片的刷新與時(shí)間到執(zhí)行
    發(fā)表于 11-26 08:12

    編寫(xiě)簡(jiǎn)單高效單片機(jī)匯編程序

    1、使用模塊化結(jié)構(gòu):分解功能塊 模塊化編程讓代碼更清晰,并能提高代碼的復(fù)用性。 例如,對(duì)于電子時(shí)鐘程序,可以將代碼分為顯示模塊、按鍵處理模塊、計(jì)時(shí)模塊、定時(shí)器中斷服務(wù)程序等。 每
    發(fā)表于 11-24 07:00

    控制結(jié)構(gòu)介紹

    1. 順序結(jié)構(gòu):按照代碼的書(shū)寫(xiě)順序,逐行執(zhí)行程序。這是最基本的程序結(jié)構(gòu)。 2. 選擇結(jié)構(gòu):根據(jù)條件判斷的結(jié)果,選擇執(zhí)行不同的代碼塊。常見(jiàn)的選擇結(jié)構(gòu)
    發(fā)表于 11-24 06:43

    編程序段的定義介紹

    1 程序段的定義 程序段的一般格式如下: CODE SEGMENT ASSUMECS:CODE, DS:DATA START: MOVAX, DATA MOVDS, AX ...(其他
    發(fā)表于 11-21 08:19

    教程來(lái)啦!LuatOS中的消息通信機(jī)制詳解及其應(yīng)用場(chǎng)景

    在資源受限的嵌入式環(huán)境中,LuatOS采用消息機(jī)制實(shí)現(xiàn)模塊間解耦與高效通信。通過(guò)預(yù)定義消息名稱(chēng)(如“new_msg”),開(kāi)發(fā)者可輕松構(gòu)建響應(yīng)式程序結(jié)構(gòu)。接下來(lái)我們將深入剖析其實(shí)現(xiàn)原理與典型使用方法
    的頭像 發(fā)表于 09-26 18:59 ?427次閱讀
    教程來(lái)啦!LuatOS中的消息通信機(jī)制詳解及其應(yīng)用場(chǎng)景

    如何打造高效PCB結(jié)構(gòu)

    。而這一切的基礎(chǔ),往往始于一個(gè)看似簡(jiǎn)單卻至關(guān)重要的步驟——線(xiàn)路板布局。它并非簡(jiǎn)單的元件擺放,而是一門(mén)融合了電氣規(guī)則、物理限制和工程經(jīng)驗(yàn)的綜合性藝術(shù)。本文將帶你從零開(kāi)始,探索如何打造一個(gè)高效、可靠的PCB結(jié)構(gòu)。
    的頭像 發(fā)表于 07-24 15:07 ?861次閱讀

    定義IO初始化結(jié)構(gòu)

    由上述IOPORT相關(guān)功能的枚舉類(lèi)型我們可以知道,在對(duì)IOPORT模塊進(jìn)行初始化時(shí)需要根據(jù)情況配置它們。因此我們定義一個(gè)IOPORT初始化的結(jié)構(gòu)體類(lèi)型IOPORT_Init_t,它的成員包括了由上述所有枚舉類(lèi)型所聲明的變量,因此該結(jié)構(gòu)
    的頭像 發(fā)表于 07-16 16:26 ?1414次閱讀

    從3小時(shí)到3分鐘:EdgeCAM 如何重構(gòu)數(shù)控編程流程

    :部分功能需持續(xù)付費(fèi)升級(jí)才能獲得最新優(yōu)化。 五、適用場(chǎng)景 模具制造:高效處理復(fù)雜曲面和深腔結(jié)構(gòu)。 大批量生產(chǎn):通過(guò)自動(dòng)化模板實(shí)現(xiàn)快速編程。 教育/研發(fā):適合高校和企業(yè)培訓(xùn)多軸加工技術(shù)。 總結(jié)
    發(fā)表于 06-27 19:53

    詳解TIA Portal SCL編程語(yǔ)言中的IF語(yǔ)句

    IF 語(yǔ)句是編程中最基本和最重要的控制結(jié)構(gòu)之一,它的主要作用是根據(jù)條件決定程序的執(zhí)行路徑,IF 語(yǔ)句是編程中實(shí)現(xiàn)邏輯判斷和決策的基礎(chǔ)。
    的頭像 發(fā)表于 05-24 15:01 ?1884次閱讀
    詳解TIA Portal SCL<b class='flag-5'>編程</b>語(yǔ)言中的IF語(yǔ)句

    FPGA的定義和基本結(jié)構(gòu)

    專(zhuān)用集成電路( ASIC)領(lǐng)域中的一種半定制電路而出現(xiàn)的,既解決了定制電路的不足,又克服了原有可編程器件門(mén)電路數(shù)有限的缺點(diǎn)。 簡(jiǎn)而言之, FPGA 就是一個(gè)可以通過(guò)編程來(lái)改變內(nèi)部結(jié)構(gòu)的芯片。
    的頭像 發(fā)表于 05-15 16:39 ?2652次閱讀
    FPGA的<b class='flag-5'>定義</b>和基本<b class='flag-5'>結(jié)構(gòu)</b>

    如何基于Kahn處理網(wǎng)絡(luò)定義AI引擎圖形編程模型

    本白皮書(shū)探討了如何基于 Kahn 處理網(wǎng)絡(luò)( KPN )定義 AI 引擎圖形編程模型。KPN 模型有助于實(shí)現(xiàn)數(shù)據(jù)流并行化,進(jìn)而提高系統(tǒng)的整體性能。
    的頭像 發(fā)表于 04-17 11:31 ?873次閱讀
    如何基于Kahn處理網(wǎng)絡(luò)<b class='flag-5'>定義</b>AI引擎圖形<b class='flag-5'>編程</b>模型

    LabVIEW運(yùn)動(dòng)控制(三):EtherCAT運(yùn)動(dòng)控制器的高效加工指令自定義封裝

    LabVIEW高效加工指令自定義封裝
    的頭像 發(fā)表于 04-08 13:49 ?3638次閱讀
    LabVIEW運(yùn)動(dòng)控制(三):EtherCAT運(yùn)動(dòng)控制器的<b class='flag-5'>高效</b>加工指令自<b class='flag-5'>定義</b>封裝