五月婷网站,av先锋丝袜天堂,看全色黄大色大片免费久久怂,中国人免费观看的视频在线,亚洲国产日本,毛片96视频免费观看

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

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

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

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

閱讀:222        發(fā)布時(shí)間:2023-2-13

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

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

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



收藏該商鋪

登錄 后再收藏

提示

您的留言已提交成功!我們將在第一時(shí)間回復(fù)您~
二維碼 意見反饋
在線留言