天天久久婷婷 I 特级西西人体444www I 亚洲乱码日产精品一二三 I ww国产内射精品后入国产 I 狠狠撸网 I 欧美一级爱爱视频 I 裸身美女无遮挡永久免费视频 I 免费av在线. I 天天狠天天狠天天鲁 I 97久久久久人妻精品专区 I 国产91av视频 I chinese国产一区二区 I 午夜精品免费观看 I 精品中文视频 I 久久久999久久久 I 青青青国产最新视频在线观看 I 自偷自拍av I 夜夜偷影视 I www.色就是色.com I 亚洲精品久久久久久久观看 I 欧美伦理片在线看 I 91精品国产乱码麻豆白嫩 I 国产精品无码制服丝袜网站 I ,一级淫片a看免费 I 超碰资源在线 I 国产99青草视频在线播放视 I 超碰2022 I 亚洲天堂国产 I 久久不见久久见www电影免费 I 亚洲sm另类一区二区三区 I 久 久久影院 I 成人在线观看18 I 欧美专区日韩专区 I 日本伦理中文字幕 I 加勒比hezyo黑人专区

咨詢熱線

18621916738

當(dāng)前位置:首頁(yè)  >  技術(shù)文章  >  西門子S7300 CPU寄存器狀態(tài)字的用法

西門子S7300 CPU寄存器狀態(tài)字的用法

更新時(shí)間:2016-01-04      點(diǎn)擊次數(shù):1851

西門子S7300 CPU寄存器狀態(tài)字的用法

1.引言

    CPU寄存器狀態(tài)字的各位給出了有關(guān)指令狀態(tài)或結(jié)果的信息以及所出現(xiàn)的錯(cuò)誤,我們可以將二進(jìn)制邏輯操作狀態(tài)位信號(hào)狀態(tài)直接集成到程序中,以控制程序執(zhí)行的流程。

2.狀態(tài)字寄存器

    先簡(jiǎn)單介紹一下CPU中狀態(tài)字。
● 檢查位:狀態(tài)字的0位稱作檢查位,如果/FC 位的信號(hào)狀態(tài)為“0”,則表示伴隨著下一條邏輯指令,程序中將開始一個(gè)新的邏輯串。FC前面的斜杠表示對(duì)FC取反。 
● 邏輯運(yùn)算結(jié)果:狀態(tài)字的第1位為RLO 位(RLO= “邏輯運(yùn)算結(jié)果”),在二進(jìn)制邏輯運(yùn)算中用作暫時(shí)存儲(chǔ)位。比如,一串邏輯指令中的某個(gè)指令檢查觸點(diǎn)的信號(hào)狀態(tài),并根據(jù)布爾邏輯運(yùn)算規(guī)則將檢查的結(jié)果(狀態(tài)位)與RLO位進(jìn)行邏輯門運(yùn)算,然后邏輯運(yùn)算結(jié)果又存在RLO位中。 
● 狀態(tài)位:狀態(tài)位(第2位)用以保存被尋址位的值。狀態(tài)位總是向掃描指令(A,AN,O,…)或?qū)懼噶睿?,S,R,)顯示尋址位的狀態(tài)(對(duì)于寫指令,保存的尋址位狀態(tài)是本條寫指令執(zhí)行后的該尋址位的狀態(tài))。 
● OR位:在用指令OR執(zhí)行或邏輯操作之前,執(zhí)行與邏輯操作的時(shí)候,就需要用到OR這一狀態(tài)位。OR位表示先前執(zhí)行的與邏輯操作產(chǎn)生的值為“1”,于是,邏輯操作或的執(zhí)行結(jié)果就已被確定為“1”。 
● OV位:溢出表示算術(shù)或比較指令執(zhí)行時(shí)出現(xiàn)了錯(cuò)誤。根據(jù)所執(zhí)行的算術(shù)或邏輯指令結(jié)果對(duì)該位進(jìn)行設(shè)置。 
● OS位:溢出存儲(chǔ)位是與OV位一起被置位的,而且在更新算術(shù)指令之后,它能夠保持這種狀態(tài),也就是說(shuō),它的狀態(tài)不會(huì)由于下一個(gè)算術(shù)指令的結(jié)果而改變。 這樣,即使是在程序的后面部分,也還有機(jī)會(huì)判斷數(shù)字區(qū)域是否溢出或者指令是否含有無(wú)效實(shí)數(shù)。OS位只有通過(guò)如下這些命令進(jìn)行復(fù)位:JOS(若OS = 1,則跳轉(zhuǎn))命令,塊調(diào)用和塊結(jié)束命令。 
● CC1及CC0位:CC1和CC0(條件代碼)位給出有關(guān)下列結(jié)果的相關(guān)信息: 
• 算術(shù)指令結(jié)果 
• 比較指令結(jié)果 
• 字邏輯指令
• 在移位功能中,移出位相關(guān)信息。 
可以用以下指令來(lái)檢查條件代碼CC1和CC0。

CC1 CC0 檢查完成后,如果:

0 0 A == 0 結(jié)果 =0 

1 0 A > 0  結(jié)果 > 0

0 1 A < 0  結(jié)果 < 0

● BR位:狀態(tài)字的第8位稱為二進(jìn)制結(jié)果位。它將字處理程序與位處理起來(lái),在一段既有位操

    作又有字操作的程序中,用于表示字邏輯是否正確。將BR位加入程序后,無(wú)論字操作結(jié)果如何,都不會(huì)造成二進(jìn)制邏輯鏈中斷。在梯形圖的方塊指令中,BR位與ENO位有對(duì)應(yīng)關(guān)系,用于表明方塊指令是否被正確執(zhí)行:如果執(zhí)行出現(xiàn)了錯(cuò)誤,BR位為0,ENO位也為0;如果功能被正確執(zhí)行,BR位為1,

    ENO位也為1。在用戶編寫的FB/FC程序中,應(yīng)該對(duì)BR位進(jìn)行管理,功能塊正確執(zhí)行后,使BR位為1,否則使其為0。使用SAVE指令將RLO存入BR中,從而達(dá)到管理BR位目的。

狀態(tài)字的9-15位未使用。

3.具體使用

    下面我們結(jié)合STEP7中的指針編程來(lái)具體介紹條件碼CC0/CC0的用法。

    不同的指令在CPU中執(zhí)行時(shí)間是不同的。浮點(diǎn)數(shù)比定點(diǎn)數(shù)執(zhí)行時(shí)間要長(zhǎng);字邏輯指令比位邏輯指令執(zhí)行時(shí)間要長(zhǎng);在某些程序中適當(dāng)使用狀態(tài)字來(lái)進(jìn)行編程可以減少CPU程序的執(zhí)行時(shí)間。

例1:比如說(shuō)要比較一個(gè)DB中塊的DBBO-DBB99這100個(gè)字節(jié)是正數(shù)是負(fù)數(shù)還是0,正數(shù)用1來(lái)表示;負(fù)數(shù)用-1來(lái)表示;0用0來(lái)表示。并且將對(duì)應(yīng)結(jié)果存入MB200開始的100個(gè)字節(jié)中。我們通常的做法可能為:

 

如果利用條件碼來(lái)進(jìn)行編程,既可以減少程序的大小還會(huì)減少一定的指令執(zhí)行時(shí)間,我們只需要將

中間的比較程序加以優(yōu)化,即可以達(dá)到目的。

 

   例2:根據(jù)狀態(tài)位C0和CC1的狀態(tài)而跳轉(zhuǎn)的跳轉(zhuǎn)功能指令JZ不改變?nèi)魏螤顟B(tài)位的狀態(tài),而且邏輯操作結(jié)果RLO值也會(huì)“隨著”該跳轉(zhuǎn)功能帶到跳轉(zhuǎn)程序段中,供用戶程序其它邏輯操作之用(不改變/FC狀態(tài))。 
示例 兩個(gè)整數(shù)相減并需進(jìn)行連續(xù)判斷: 
    L MW2 
    L MW8 
    -I 
    JZ ZERO // 如果結(jié)果等于“0”,則跳轉(zhuǎn)至標(biāo)號(hào)ZERO處 
             // 結(jié)果不等于“0”時(shí)所執(zhí)行的指令 
    ZERO:   // 結(jié)果等于“0”時(shí),所要執(zhí)行的指令 
  如果用戶不熟悉JZ指令和狀態(tài)位C0和CC1的具體含義,編程時(shí)就需要通過(guò)比較指令將比較結(jié)果存入一個(gè)二進(jìn)制位中,再根據(jù)這個(gè)二進(jìn)制位通過(guò)JC/JCN指令來(lái)控制程序的執(zhí)行了。

例3:我們實(shí)際應(yīng)用中可能要利用某些協(xié)議轉(zhuǎn)換網(wǎng)關(guān)(比如說(shuō)Hilscher公司的NTTAP系列網(wǎng)關(guān))來(lái)和某些串口協(xié)議的儀表進(jìn)行通信時(shí),會(huì)遇到CRC校驗(yàn)的問(wèn)題,關(guān)于CRC校驗(yàn)時(shí)需要判斷溢出位是否為1的問(wèn)題來(lái)進(jìn)行程序的進(jìn)一步計(jì)算。我們以EURO2408的MODBUS通信時(shí)需要的CRC校驗(yàn)為例說(shuō)明CRC校驗(yàn)的步驟:

1、裝載16#FFFF到一個(gè)16位CRC寄存器;

2、將CRC寄存器的高8位字節(jié)與信息中的*個(gè)8位字節(jié)相異或,結(jié)果返回到CRC寄存器中;

3、將CRC寄存器數(shù)據(jù)向右移動(dòng)一位;

4、如果溢出的位等于1,則將CRC寄存器與16#A001相異或,結(jié)果返回到CRC寄存器中;

4、如果溢出的位等于0,則重復(fù)第3步;

5、重復(fù)第3、4步驟,直到已經(jīng)移位了8次;

6、將CRC寄存器的高8位字節(jié)與信息中的下一個(gè)8位字節(jié)相異或,結(jié)果返回到CRC寄存器中;

7、重復(fù)第3步到第6步,直到信息中所有字節(jié)都與CRC寄存器相異或,并都移位了8次;

8、zui后的CRC寄存器中的結(jié)果即為CRC校驗(yàn)碼,zui后被添加到信息(數(shù)據(jù))的末尾(交換!低8位

在前,高8位在后;)

在第4步中需要判斷溢出的位是否為1,如何判斷對(duì)于整個(gè)程序有著重要的影響。我們可以用A>0指令來(lái)判斷這個(gè)條件,具體代碼的編寫,有興趣時(shí)大家可以根據(jù)上面的步驟編寫一個(gè)自己的CRC程序。

4.結(jié)束語(yǔ)

在一般情況下,我們不必考慮這些狀態(tài)位,但在某些情況下,利用這些狀態(tài)位并結(jié)合一定的指令,可以給我們的編程帶來(lái)更大的靈活性,同時(shí)對(duì)于進(jìn)一步提高自己的編程水平也有一定的作用。

聯(lián)系我們

上海翰粵自動(dòng)化系統(tǒng)有限公司 公司地址:上海市松江區(qū)思賢路2399弄137號(hào)   技術(shù)支持:化工儀器網(wǎng)
  • 聯(lián)系人:黃政武
  • QQ:76868608
  • 公司傳真:021-57657276
  • 郵箱:76868608@qq.com

掃一掃 更多精彩

微信二維碼

網(wǎng)站二維碼

主站蜘蛛池模板: 狠狠五月| 人人爽人人看 | 精品国产91乱码一区二区三区 | 午夜成人亚洲理论片在线观看 | 中文字幕av亚洲精品一部二部 | 免费人成网ww555kkk在线 | 国精产品一区一区三区 | 天天拍拍夜夜出水 | 国产中文字字幕乱码无限 | 国产免费无码一区二区视频 | 99黄色网| 欧美在线观看视频 | 毛片资源 | 欧美人成片免费看视频不卡 | 亚洲乱码国产一区三区 | 日韩精品视频在线播放 | 国产偷人妻精品一区二区在线 | 日韩精品一二三区 | 免费一二区 | 无码h黄肉3d动漫在线观看 | 欧美成人网在线综合视频 | 无码人妻丰满熟妇啪啪网站 | 男人的天堂中文字幕熟女人妻 | 国产欧美精品一区二区三区 | 日韩久久一区 | 久操不卡 | 成人黄色短视频在线观看 | 成 年 人 黄 色 大 片大 全 | 日本黄页免费大片在线观看 | 久久久久亚洲一区二区三区 | 91精品国产91久久久久久 | 国产尤物视频 | 日本一区二区三区视频在线观看 | 色综合天天色综合 | 欧美性色生活片免费播放 | a毛片毛片av永久免费 | 欧美日韩中文视频 | 一本色道久久综合无码人妻 | 国产精品片一区二区三区 | 五月激情综合网 | 四虎影视永久在线观看 | 三级成人在线 | 一区二区三区四区在线 | 欧美色综合网 | 肥臀浪妇太爽了快点再快点 | 国产色a | 精品国产一区二区三区成人影院 | 国产精品美女久久久久久久久久久 | 91国色| 少妇高潮潮喷到猛进猛出小说 | sese国产| 日韩国产成人资源精品视频 | 中文亚洲成a人片在线观看 中文亚洲欧美日韩无线码 中文有码vs无码人妻 | а√天堂资源中文最新版地址 | 人妖一区 | 日韩欧美一二三区 | 日韩日韩日韩日韩 | 四虎永久| 一区二区中文字幕 | 亚洲精品一区久久久久久 | 成人国产精品免费视频不卡 | 97精品国产97久久久久久免费 | 精品国产一区二区三区四区五区 | 成人爽a毛片在线视频网站 婷婷色在线观看 | www成人国产在线观看网站 | 老汉老妇姓交视频 | 色综合天天综合网国产成人网 | 人妻夜夜爽天天爽三区 | 日韩18在线观看地址 | 亚洲欧洲美洲无码精品va | 日本无遮挡边做边爱边摸 | 天天做天天干 | 亚洲欧洲自拍拍偷精品网 | 97久久精品人妻人人搡人人玩 | 国产成人a人亚洲精品无码 国产成人a亚洲精v品无码 | 免费又黄又爽又猛的毛片 | 欧美一级黄色网 | 精品久久一二三区 | 成在线人免费视频一区二区三区 | 好看的欧美熟妇www在线 | 国产一区不卡 | 色综合成人 | 毛片入口| 黄色毛片免费看 | 人人草人人干 | 国产全是老熟女太爽了 | 乱妇乱女熟妇熟女网站 | 国产精品女A片爽爽波多洁衣 | 太粗太深了太紧太爽了动态图男男 | 美女国内精品自产拍在线播放 | 欧美日韩国产在线人成dvd | 国产麻豆天美果冻无码视频 | 欧美在线观看视频一区 | 国内老熟妇对白hdxxxx | 日韩a | 中文字幕专区 | 一区一区三区产品乱码 | 97精品国产| 免费在线国产视频 |