S7-300的n個(gè)常見(jiàn)問(wèn)題解答之六
141:應(yīng)用軟件冗余當(dāng)一個(gè)長(zhǎng)度錯(cuò)誤出現(xiàn)導(dǎo)致CPU處于STOP模式應(yīng)該作些什么?
   當(dāng)在OB100中設(shè)置軟件冗余功能塊FC100時(shí),必須注意下列情況:參數(shù)IEC_NO 的背景數(shù)據(jù)塊必須至少有兩個(gè)字的長(zhǎng)度,同樣應(yīng)用于冗余用戶程序的參數(shù) DB_NO的數(shù)據(jù)塊也必須時(shí)這樣?! ?BR>  142:在S7程序中,">

      技術(shù)頻道

      S7-300的n個(gè)常見(jiàn)問(wèn)題解答之六

      S7-300的n個(gè)常見(jiàn)問(wèn)題解答之六
      141:應(yīng)用軟件冗余當(dāng)一個(gè)長(zhǎng)度錯(cuò)誤出現(xiàn)導(dǎo)致CPU處于STOP模式應(yīng)該作些什么?
         當(dāng)在OB100中設(shè)置軟件冗余功能塊FC100時(shí),必須注意下列情況:參數(shù)IEC_NO 的背景數(shù)據(jù)塊必須至少有兩個(gè)字的長(zhǎng)度,同樣應(yīng)用于冗余用戶程序的參數(shù) DB_NO的數(shù)據(jù)塊也必須時(shí)這樣?! ?BR>  142:在S7程序中,有許多FC、FB塊, 我怎樣對(duì)其中的一些塊進(jìn)行保護(hù), 而其它的塊可以是開(kāi)放的呢?
         1) Step7中, 可以先任意打開(kāi)一塊如OB1, 在"file"中選擇"Generate Source"或快捷方式"Ctrl+T",彈出一個(gè)畫(huà)面,填寫(xiě)"object name"如"tt",然后按OK確認(rèn),就會(huì)再?gòu)棾隽硪粋€(gè)畫(huà)面,左邊是你的程序中所有的塊,如果你需要保護(hù)哪些塊, 就把這些塊移到右邊,如FB1、FB2等等, 然后退出所有的程序塊,再進(jìn)入SIMATIC Manager中。
         2) 在S7 Program Sources找到文件tt,雙擊tt打開(kāi),在第四行中加入"Know_How_Protect", 然后編譯, 無(wú)錯(cuò)后存盤(pán)。這樣FB1、FB2就被保護(hù)住,如想去掉保護(hù),在tt中去掉"Know_How_Protect"編譯存盤(pán)即可。
         注意: 千萬(wàn)不要丟失或刪除源文件(如tt), 否則程序被保護(hù), 用戶可以另存到其它目錄中,或Export Source到硬盤(pán)中,再刪除源文件,這樣別人只能看到未保護(hù)的塊。   
        143:SFB41,SFB42,SFB43和FB41,FB42,FB43的區(qū)別?
         SFB41(CONT_C),SFB42(CONT_S),SFB43(PULSEGEN)塊和FB41(CONT_C),FB42(CONT_S),FB43(PULSEGEN)的區(qū)別: SFB41,42,43與FB41,42,43的參數(shù)設(shè)置是一樣的。SFB41,42,43只能用于CPU314IFM;FB41,42,43可用于CPU313以上的CPU(除CPU314IFM),因?yàn)镾FB41,42,43集成于CPU314IFM中,而在普通CPU中沒(méi)有這些塊。   
        144:如何在多例兼容功能塊中找到變量地址?
         在多例兼容功能塊中,為塊參數(shù)和靜態(tài)本地?cái)?shù)據(jù)加載與地址寄存器AR2有關(guān)的絕對(duì)地址。如果要在情景數(shù)據(jù)塊中找到變量的絕對(duì)地址,則必須把域內(nèi)指針(只是AR2的地址)加載到變量地址。
        樣例:
        TAR2 //將地址寄存器加載到累加器AC1(偏移量)
        UD DW#16#00FF_FFFF // 關(guān)閉區(qū)域ID
        L P##variable //加載變量地址
        +D // 增加偏移量和變量地址
        LAR1 // 保存地址寄存器AR1中的結(jié)果
        這樣可在AR1中獲得絕對(duì)地址以進(jìn)行進(jìn)一步處理。
         當(dāng)功能塊作為本地實(shí)例調(diào)用時(shí),總要使用該方法。比如,在一個(gè)功能塊中創(chuàng)建可做為類(lèi)型“FB”的靜態(tài)變量的功能塊。這樣所調(diào)用的情景數(shù)據(jù)塊的數(shù)據(jù)偏移量就存儲(chǔ)到情景數(shù)據(jù)塊中。單個(gè)實(shí)例的偏移量在AR2中。如果不調(diào)用作為本地實(shí)例的功能塊,則可以結(jié)束計(jì)算。值‘ 0’就在地址寄存器中。
        注意事項(xiàng):如果改變程序中的地址寄存器AR2,那么也改變了變量的偏移量地址。因此就不能保證再對(duì)變量進(jìn)行正確訪問(wèn)。在這種情況下,必須預(yù)先保存AR2,并 在對(duì)程序動(dòng)作完之后將其 復(fù)位為初始狀態(tài)。
        樣例:
        TAR2 // 在累加器中加載偏移量地址
        T #save // 比如,靜態(tài)本地?cái)?shù)據(jù)域 0中的變量
        L DID 0 // 地址絕對(duì)是由DI加載的beds  L AR2 // 核對(duì)  
        145:怎樣才能訪問(wèn)上一函數(shù)的本地?cái)?shù)據(jù)?
         如要訪問(wèn)以前的本地?cái)?shù)據(jù)(“V-e > L”數(shù)據(jù)),可以傳送一自創(chuàng)建ANY指針或絕對(duì)地址到被調(diào)用的FC。如果傳送的是自創(chuàng)建ANY指針,區(qū)域指針會(huì)指向其本地?cái)?shù)據(jù),而這是無(wú)意義的。> 因此“V”區(qū)域碼必須置于ANY指針中。此碼必須準(zhǔn)確傳送。當(dāng)指定絕對(duì)地址時(shí)可由編譯器完成此工作。
        常規(guī)程序結(jié)構(gòu):
        以ANY指針或絕對(duì)(地址)方式傳送:
        LAR1 P##target //本地定義的ANY變量初始地址
        L W#16#87 //為“V”區(qū)域載入碼
        T LB[AR1,P#6.0] //傳送到ANY變量
        CALL FCxy
        source1: = #target //傳送自創(chuàng)建的ANY指針
        source2: = P#L 0.0 BYTE 8 //傳送完全L數(shù)據(jù)區(qū) 
        絕對(duì)尋址與通過(guò)ANY指針尋址的區(qū)別:
        下圖顯示了絕對(duì)尋址與通過(guò)自創(chuàng)建ANY指針尋址間的區(qū)別。在這種情況下“ 87”碼不傳送,因此ANY指針指向其本地區(qū)域。
        146:怎樣在DB內(nèi)進(jìn)行間接尋址? 
        請(qǐng)參照:
        在DB內(nèi)進(jìn)行間接尋址例子  
        147:下面是一個(gè)在STEP7軟件中實(shí)現(xiàn)簡(jiǎn)單指針尋址的例子程序,您可以參考它的結(jié)構(gòu)實(shí)現(xiàn)您的指針尋址功能?  
        siemens指針尋址例子_cpu315  
        148:絕對(duì)地址和符號(hào)尋址的定義和區(qū)別是什么?
         在STEP 7程序中要用到I/O信號(hào)、位寄存器、計(jì)數(shù)器、定時(shí)器、數(shù)據(jù)塊及功能塊。在程序中可以采用直接地址,或者更便于讀程序的符號(hào)尋址,例如Motor_A_On, 或采用你的公司或行業(yè)常用的代碼。這樣在你的用戶程序中就可以通過(guò)符號(hào)來(lái)尋址。
        絕對(duì)地址:絕對(duì)地址由地址標(biāo)識(shí)符和存儲(chǔ)器的位置組成,例如 Q1.0,I1.1, M2.0, FB21等。
        符號(hào)地址 :如果為絕對(duì)地址指定一個(gè)符號(hào)名,程序會(huì)更便于閱讀和查錯(cuò)。
        STEP 7 可以自動(dòng)將符號(hào)名翻譯成所需的絕對(duì)地址。如果要用符號(hào)名存取ARRAY、STRUCT、數(shù)據(jù)塊、局部數(shù)據(jù)、邏輯塊、以及用戶自定義數(shù)據(jù)類(lèi)型, 必須首先為絕對(duì)地址指定一個(gè)符號(hào)名。   
        例如,可以為Q0.0 指定一個(gè)符號(hào)名MOTOR_ON,然后在程序中將MOTOR_ON作為一個(gè)地址使用。使用符號(hào)地址更容易將您的過(guò)程控制項(xiàng)目中的元件與程序中的元件相對(duì)應(yīng)。
        注意:在符號(hào)名中不允許使用兩個(gè)連續(xù)的下劃線,例如MOTOR__ON。
        編程支持 :LAD、FBD、STL中地址、參數(shù)、塊名可用絕對(duì)地址或符號(hào)表示。
        用菜單命令View > Display > Symbolic Representation,可以切換絕對(duì)地址和符號(hào)地址
        為了使用符號(hào)地址編程更加容易,可以同時(shí)顯示絕對(duì)地址和符號(hào)名。使用菜單命令 View > Display > Symbol Information來(lái)激活。這就意味著STL語(yǔ)句的注釋包含了更多的信息。不能在該界面下進(jìn)行修改,只能在符號(hào)表(symbol table)或變量聲明表(variable declaration table)中進(jìn)行修改。  
        149:S7-300/400系統(tǒng)存儲(chǔ)區(qū)域共有多少種?
         S7 CPU的系統(tǒng)存儲(chǔ)區(qū)域分為下表中列出的地址區(qū)域。在程序中可以根據(jù)相應(yīng)的地址直接讀取數(shù)據(jù)。   
        150:如何把一個(gè)DATE_AND_TIME變量轉(zhuǎn)換為STRING變量?
         為了以日期/時(shí)間字符串(STRING)形式顯示DATE_AND_TIME變量,必須DATE_AND_TIME 變量的專用字節(jié)轉(zhuǎn)換為相應(yīng)的CHAR字符。
         讀取DATE_AND_TIME 變量的專用字節(jié)并從這兩位數(shù)所在ASCII碼中創(chuàng)建專用位。將確定了的CHAR字符存儲(chǔ)在字符串的期望位置。
        示例:
        L 字節(jié)年
        SLD 12
        SRW 4
        SRD 8
        L W#16#3030
        + I
        T 數(shù)字字符年
        也可以用相反順序?qū)⒁粋€(gè)STRING格式的日期/時(shí)間字符串轉(zhuǎn)換為一個(gè)DATE_AND_TIME變量。


      文章版權(quán)歸西部工控xbgk所有,未經(jīng)許可不得轉(zhuǎn)載。

      主站蜘蛛池模板: 亚洲一区二区三区在线播放| 伊人色综合网一区二区三区| 亚洲日本va一区二区三区| 日韩一区二区超清视频| 日本一区二区三区在线网| 最新欧美精品一区二区三区| 日本一区二区不卡在线| 免费一区二区三区| 日本免费一区尤物| 无码少妇A片一区二区三区| 日韩人妻无码一区二区三区99| 国产一区二区精品久久凹凸| 国产一区二区免费在线| 高清精品一区二区三区一区| 人妻无码久久一区二区三区免费 | 色婷婷综合久久久久中文一区二区| 美女福利视频一区二区| 国产乱码精品一区二区三区麻豆| 亚洲综合色一区二区三区小说| 久久国产精品一区免费下载| 亚洲一区无码中文字幕| 国产色情一区二区三区在线播放| 国产一区二区三区在线观看精品| 精品一区二区三区影院在线午夜 | 色国产精品一区在线观看| 日韩免费观看一区| 青青青国产精品一区二区| 日韩精品一区二区三区大桥未久| 久久婷婷久久一区二区三区| 国产激情无码一区二区app| 国产伦精品一区二区三区免费迷| 精品一区二区久久久久久久网精| 国产伦一区二区三区免费| 国产一区二区三区在线观看免费 | 91福利视频一区| 久久免费区一区二区三波多野| 国产亚洲自拍一区| 亚洲国产精品第一区二区三区| 国产精品无码一区二区三区在 | 91成人爽a毛片一区二区| 国产一区二区视频在线观看|