日韩av大片在线观看欧美成人不卡|午夜先锋看片|中国女人18毛片水多|免费xx高潮喷水|国产大片美女av|丰满老熟妇好大bbbbbbbbbbb|人妻上司四区|japanese人妻少妇乱中文|少妇做爰喷水高潮受不了|美女人妻被颜射的视频,亚洲国产精品久久艾草一,俄罗斯6一一11萝裸体自慰,午夜三级理论在线观看无码

| 注冊| 產(chǎn)品展廳| 收藏該商鋪

行業(yè)產(chǎn)品

當(dāng)前位置:
潯之漫智控技術(shù)(上海)有限公司>>技術(shù)文章>>6ES7313-6CG04-0AB0詳細(xì)說明

6ES7313-6CG04-0AB0詳細(xì)說明

閱讀:234        發(fā)布時間:2023-2-13

6ES7313-6CG04-0AB0詳細(xì)說明

西門子plc的每次向上計數(shù)輸入執(zhí)行從關(guān)閉至打開轉(zhuǎn)換時,,向上計數(shù)(CTU)從該計數(shù)器的當(dāng)前值向上計數(shù)。重設(shè)輸入打開或執(zhí)行重設(shè)指令時,,計數(shù)器被重設(shè),。達(dá)到最大值(32,767)時,計數(shù)器停止,。
  每次向上計數(shù)輸入執(zhí)行從關(guān)閉至打開轉(zhuǎn)換時,,向上/向下計數(shù)器(CTUD)向上計數(shù),每次向下計數(shù)輸入執(zhí)行從關(guān)閉至打開轉(zhuǎn)換32,767)時,,向上計數(shù)輸入的下一個上升邊緣導(dǎo)致當(dāng)前計數(shù)變成最小值(32,768)。與此相似,,達(dá)到最小值(-32,768)時,,向下計數(shù)輸入的下一個上升邊緣導(dǎo)致當(dāng)前計數(shù)變成最大值(32,767)。
  向上和向上/向下計數(shù)器有一個保持當(dāng)前計數(shù)的當(dāng)前值,。計數(shù)器還有一個預(yù)設(shè)值(PV),,每次執(zhí)行計數(shù)器指令時,將預(yù)設(shè)值與當(dāng)C位)打開,。否則,,C位關(guān)閉。
  每次向下計數(shù)輸入執(zhí)行從關(guān)閉至打開轉(zhuǎn)換時,,向下計數(shù)器(CTD)從該計數(shù)器的當(dāng)前值向下計數(shù),。載入輸入打開時,計數(shù)器重設(shè)計數(shù)器位,,并將預(yù)設(shè)值載入當(dāng)前值,。達(dá)到零時,計數(shù)器停止,,計數(shù)器位(C位)打開,。
  當(dāng)您使用西門子plc重設(shè)指令重設(shè)計數(shù)器時,計數(shù)器位被重設(shè),,計數(shù)器當(dāng)前值被設(shè)為零,。使用計數(shù)器號碼引用該計數(shù)器的當(dāng)前值和C位。
  注釋:
  因?yàn)槊颗_計數(shù)器有一個當(dāng)前值,,請勿將相同的號碼給一臺以上計數(shù)器,。(向上計數(shù)器、向上/向下計數(shù)器和向下計數(shù)器存取相同的當(dāng)前值。)

P#中的P是Pointer,,是個32位的直接指針,。所謂的直接,是指P#中的#后面所跟的數(shù)值或者存儲單元,,是P直接給定的,。這樣P#XXX這種指針,就可以被用來在指令尋址中,,作為一個“常數(shù)"來對待,,這個“常數(shù)"可以包含或不包含存儲區(qū)域。例如:
  ● L P#Q1.0 //把Q1.0這個指針存入ACC1,,此時ACC1的內(nèi)容=82000008(hex)=Q1.0
  ★ L P#1.0 //把1.0這個指針存入ACC1,,此時ACC1的內(nèi)容=00000008(hex)=1.0
  ● L P#MB100 //錯誤!必須按照byte.bit結(jié)構(gòu)給定指針,。
  ● L P#M100.0 //把M100.0這個指針存入ACC1,,此時ACC1的內(nèi)容=83000320(hex)=M100.0
● L P#DB100.DBX26.4 //錯誤!DBX已經(jīng)提供了存儲區(qū)域,,不能重復(fù),。
  ● L P#DBX26.4 //把DBX26.4這個指針存入ACC1,此時ACC1的內(nèi)容=840000D4(hex)=DBX26.4
  我們發(fā)現(xiàn),,當(dāng)對P#只是數(shù)值時,,累加器中的值和區(qū)域內(nèi)尋址指針規(guī)定的格式相同(也和存儲器間接尋址雙字指針格式相同);而當(dāng)對P#有存儲區(qū)域時,,累加器中的內(nèi)容和區(qū)域間尋址指針內(nèi)容相同,。事實(shí)上,把什么樣的值傳給AR,,就決定了是以什么樣的方式來進(jìn)行寄存器間接尋址,。在實(shí)際應(yīng)用中,我們正是利用P#的這種特點(diǎn),,根據(jù)不同的需要,,P#指針,然后,,再傳遞給AR,,以確定最終的尋址方式。
  在寄存器尋址中,,P#XXX作為寄存器AR指針的偏移量,,用來和AR指針進(jìn)行相加運(yùn)算,運(yùn)算的結(jié)果,,才是指令真正要操作的確切地址數(shù)值單元,!
  無論是區(qū)域內(nèi)還是區(qū)域間尋址,,地址所在的存儲區(qū)域都有了,因此,,這里的P#XXX只能純粹的數(shù)值,,如上面例子中的★。
  【指針偏移運(yùn)算法則】
  在寄存器尋址指針 [AR1/2,P#byte.bit] 這種結(jié)構(gòu)中,,P#byte.bit如何參與運(yùn)算,,得出最終的地址呢?
  運(yùn)算的法則是:AR1和P#中的數(shù)值,,按照BYTE位和BIT位分類相加,。BIT位相加按八進(jìn)制規(guī)則運(yùn)算,而BYTE位相加,,則按照十進(jìn)制規(guī)則運(yùn)算,。
  例如:寄存器尋址指針是:[AR1,P#2.6],,我們分AR1=26.4和DBX26.4兩種情況來分析,。
  當(dāng)AR1等于26.4,
   AR1:26.2
   + P#: 2.6
   ---------------------------
   = 29.7 這是區(qū)域內(nèi)寄存器間接尋址的最終確切地址數(shù)值單元
  當(dāng)AR1等于DBX26.4,,
   AR1:DBX26.2
   + P#: 2.6
   ---------------------------
   = DBX29.7 這是區(qū)域間寄存器間接尋址的最終確切地址數(shù)值單元
  【AR的地址數(shù)據(jù)賦值】
  通過前面的介紹,,我們知道,要正確運(yùn)用寄存器尋址,,最重要的是對寄存器AR的賦值。同樣,,區(qū)分是區(qū)域內(nèi)還是區(qū)域間尋址,,也是看AR中的賦值。
  對AR的賦值通常有下面的幾個方法:
  1,、直接賦值法
  例如:
  L DW#16#83000320
  LAR1
  可以用16進(jìn)制,、整數(shù)或者二進(jìn)制直接給值,但必須確保是32位數(shù)據(jù),。經(jīng)過賦值的AR1中既存儲了地址數(shù)值,,也了存儲區(qū)域,因此這時的寄存器尋址方式肯定是區(qū)域間尋址,。
  2,、間接賦值法
  例如:
  L [MD100]
  LAR1
  可以用存儲器間接尋址指針給定AR1內(nèi)容。具體內(nèi)容存儲在MD100中,。
  3,、指針賦值法
  例如:
  LAR1 P#26.2
  使用P#這個32位“常數(shù)"指針賦值A(chǔ)R。
  總之,,無論使用哪種賦值方式,,由于AR存儲的數(shù)據(jù)格式有明確的規(guī)定,,因此,都要在賦值前,,確認(rèn)所賦的值是否符合尋址規(guī)范,。
----------------------------------------------
詳解西門子間接尋址<3>
  使用間接尋址的主要目的,是使指令的執(zhí)行結(jié)果有動態(tài)的變化,,簡化程序是第一目的,,在某些情況下,這樣的尋址方式是必須的,,比如對某存儲區(qū)域數(shù)據(jù)遍歷,。此外,間接尋址,,還可以使程序更具柔性,,換句話說,可以標(biāo)準(zhǔn)化,。
  下面通過實(shí)例應(yīng)用來分析如何靈活運(yùn)用這些尋址方式,,在實(shí)例分析過程中,將對前面帖子中的筆誤,、錯誤和遺漏做糾正和補(bǔ)充,。
  【存儲器間接尋址應(yīng)用實(shí)例】
  我們先看一段示例程序:
  L 100 
  T MW 100 // 將16位整數(shù)100傳入MW100
  L DW#16#8 // 加載雙字16進(jìn)制數(shù)8,當(dāng)把它用作雙字指針時,,按照BYTE.BIT結(jié)構(gòu),,
   結(jié)果演變過程就是:8H=1000B=1.0
  T MD 2 // MD2=8H
  OPN DB [MW 100] // OPN DB100
  L DBW [MD 2] // L DB100.DBW1
  T MW[MD2] // T MW1 
  A DBX [MD 2] // A DBX1.0
  = M [MD 2] // =M1.0
  在這個例子中,我們中心思想其實(shí)就是:將DB100.DBW1中的內(nèi)容傳送到MW1中,。這里我們使用了存儲器間接尋址的兩個指針——單字指針MW100用于DB塊的編號,,雙字指針MD2用于DBW和MW存儲區(qū)字地址。
  -------------------------------------------------------------------------------------------------------------------------------------------------
  對于壇友提出的 DB[MW100].DBW[MD2] 這樣的尋址是錯誤的提法,,這里做個解釋:
  DB[MW100].DBW[MD2] 這樣的尋址結(jié)構(gòu)就尋址原理來說,,是可以理解的,但從SIEMENS程序執(zhí)行機(jī)理來看,,是非法的,。在實(shí)際程序中,對于這樣的尋址,,程序語句應(yīng)該寫成:
  OPN DBW[WM100],, L DBW[MD2]-------------------------------------------------------------------------------------------------------------------------------------------------
  事實(shí)上,從這個例子的中心思想來看,,根本沒有必要如此復(fù)雜,。但為什么要用間接尋址呢?
  要澄清使用間接尋址的優(yōu)勢,,就讓我們從比較中,,找答案吧,。
  例子告訴我們,它最終執(zhí)行的是把DB的某個具體字的數(shù)據(jù)傳送到位存儲區(qū)某個具體字中,。這是針對數(shù)據(jù)塊100的1數(shù)據(jù)字傳送到位存儲區(qū)第1字中的具體操作,。如果我們現(xiàn)在需要對同樣的數(shù)據(jù)塊的多個字(連續(xù)或者不連續(xù))進(jìn)行傳送呢?直接的方法,,就是一句一句的寫這樣的具體操作,。有多少個字的傳送,就寫多少這樣的語句,。毫無疑問,,即使不知道間接尋址的道理,也應(yīng)該明白,,這樣的編程方法是不合理的,。而如果使用間接尋址的方法,語句就簡單多了,。
  【示例程序的結(jié)構(gòu)分析】
  我將示例程序從結(jié)構(gòu)上做個區(qū)分,,重新輸入如下:
  =========================== 輸入1:數(shù)據(jù)塊編號的變量
  || L 100 
  || T MW 100 
  ===========================輸入2:字地址的變量
  || L DW#16#8 
  || T MD 2 
  ===========================操作主體程序 
   OPN DB [MW 100] 
   L DBW [MD 2] 
   T MW[MD2] 
  顯然,我們根本不需要對主體程序(紅色部分)進(jìn)行簡單而重復(fù)的復(fù)寫,,而只需改變MW100和MD2的賦值(綠色部分),,就可以完成應(yīng)用要求。
  結(jié)論:通過對間接尋址指針內(nèi)容的修改,,就完成了主體程序執(zhí)行的結(jié)果變更,,這種修改是可以是動態(tài)的和靜態(tài)的。
  正是由于對真正的目標(biāo)程序(主體程序)不做任何變動,,而尋址指針是這個程序中要修改的地方,,可以認(rèn)為,尋址指針是主體程序的入口參數(shù),,就好比功能塊的輸入?yún)?shù)。因而可使得程序標(biāo)準(zhǔn)化,,具有移植性,、通用性。
  那么又如何動態(tài)改寫指針的賦值呢,?不會是另一種簡單而重復(fù)的復(fù)寫吧,。
  讓我們以一個具體應(yīng)用,來完善這段示例程序吧:
  將DB100中的1-11數(shù)據(jù)字,,傳送到MW1-11中
  在設(shè)計完成這個任務(wù)的程序之前,,我們先了解一些背景知識。
  【數(shù)據(jù)對象尺寸的劃分規(guī)則】
  數(shù)據(jù)對象的尺寸分為:位(BOOL),、字節(jié)(BYTE),、字(WORD),、雙字(DWORD)。這似乎是個簡單的概念,,但如果,,MW10=MB10+MB11,那么是不是說,,MW11=MB12+MB13,?如果你的回答是肯定的,我建議你繼續(xù)看下去,,不要跳過,,因?yàn)檫@里的疏忽,會導(dǎo)致最終的程序的錯誤,。
  按位和字節(jié)來劃分?jǐn)?shù)據(jù)對象大小時,,是以數(shù)據(jù)對象的bit來偏移。這句話就是說,,0bit后就是1bit,,1bit后肯定是2bit,以此類推直到7bit,,完成一個字節(jié)大小的,,再有一個bit的偏移,就進(jìn)入下一個字節(jié)的0bit,。
  而按字和雙字來劃分?jǐn)?shù)據(jù)對象大小時,,是以數(shù)據(jù)對象的BYTE來偏移!這就是說,,MW10=MB10+MB11,,并不是說,MW11=MB12+MB13,,正確的是MW11=MB11+MB12,,然后才是MW12=MB12+MB13!
  這個概念的重要性在于,,如果你在程序中使用了MW10,,那么,就不能對MW11進(jìn)行任何的操作,,因?yàn)?,MB11是MW10和MW11的交集。
  也就是說,,對于“將DB100中的1-11數(shù)據(jù)字,,傳送到MW1-11中"這個具體任務(wù)而言,我們只需要對DBW1,、DBW3,、DBW5,、DBW7、DBW9,、DBW11這6個字進(jìn)行6次傳送操作即可,。這就是單獨(dú)分出一節(jié),說明數(shù)據(jù)對象尺寸劃分規(guī)則這個看似簡單的概念的目的所在,。
  【循環(huán)的結(jié)構(gòu)】
  要“將DB100中的1-11數(shù)據(jù)字,,傳送到MW1-11中",我們需要將指針內(nèi)容按照順序逐一指向相應(yīng)的數(shù)據(jù)字,,這種對指針內(nèi)容的動態(tài)修改,,其實(shí)就是遍歷。對于遍歷,,的莫過于循環(huán),。
  一個循環(huán)包括以下幾個要素:
  1、初始循環(huán)指針
  2,、循環(huán)指針自加減
  2,、繼續(xù)或者退出循環(huán)體的條件判斷
  被循環(huán)的程序主體必須位于初始循環(huán)指針之后,和循環(huán)指針自加減之前,。
  比如:
  初始循環(huán)指針:X=0
  循環(huán)開始點(diǎn)M
  被循環(huán)的程序主體:-------
  循環(huán)指針自加減:X+1=X
  循環(huán)條件判斷:X≤10 ,,F(xiàn)alse:GO TO M;True:GO TO N
  循環(huán)退出點(diǎn)N
  如果把X作為間接尋址指針的內(nèi)容,,對循環(huán)指針的操作,,就等于對尋址指針內(nèi)容的動態(tài)而循環(huán)的修改了。
  【將DB100中的1-11數(shù)據(jù)字,,傳送到MW1-11中】
   L L#1 //初始化循環(huán)指針,。這里循環(huán)指針就是我們要修改的尋址指針
   T MD 102 
  M2: L MD 102
   T #COUNTER_D 
   OPN DB100
   L DBW [MD 102]
   T MW [MD 102]
   L #COUNTER_D
   L L#2 // +2,是因?yàn)閿?shù)據(jù)字的偏移基準(zhǔn)是字節(jié),。 
   +D 
   T MD 102 //自加減循環(huán)指針,,這是動態(tài)修改了尋址指針的關(guān)鍵 
   L L#11 //循環(huán)次數(shù)=n-1。n=6,。這是因?yàn)?,進(jìn)入循環(huán)是無條件的,
   但已事實(shí)上執(zhí)行了一次操作,。
   <=D 
   JC M2
   有關(guān)于T MD102 ,L L#11,, <=D的詳細(xì)分析,,請按照前面的內(nèi)容推導(dǎo)。
  【將DB1-10中的1-11數(shù)據(jù)字,,傳送到MW1-11中】
  這里增加了對DB數(shù)據(jù)塊的尋址,,使用單字指針MW100存儲尋址地址,,同樣使用了循環(huán),嵌套在數(shù)據(jù)字傳送循環(huán)外,,這樣,,要完成“將DB1-10中的1-11數(shù)據(jù)字,傳送到MW1-11中"這個任務(wù) ,,共需要M1循環(huán)10次 × M2循環(huán)6次 =60次,。
   L 1
   T MW 100
   L L#1
   T MD 102
  M1: L MW 100
   T #COUNTER_W
  M2: 對數(shù)據(jù)字循環(huán)傳送程序,同上例
   L #COUNTER_W
   L 1 //這里不是數(shù)據(jù)字的偏移,,只是編號的簡單遞增,,因此+1
   +I 
   T MW 100
   L 9 //循環(huán)次數(shù)=n-1,n=10
   <=I 
   JC M1
  通過示例分析,,程序是讓尋址指針在對要操作的數(shù)據(jù)對象范圍內(nèi)進(jìn)行遍歷來
編程,,完成這個任務(wù)。我們看到,,這種對存儲器間接尋址指針的遍歷是基于字節(jié)和字的,,如何對位進(jìn)行遍歷呢?
  這就是下一個帖子要分析的寄存器間接尋址的實(shí)例的內(nèi)容了,。



收藏該商鋪

登錄 后再收藏

提示

您的留言已提交成功,!我們將在第一時間回復(fù)您~
二維碼