s200 子程序 零散問(wèn)題
劉玉蓉
發(fā)布于2014-11-18 17:35
3
0
標(biāo)簽:
關(guān)于s200的子程序,繼續(xù)問(wèn)一些很基本的問(wèn)題,還煩請(qǐng)指
教。
1:在主程序里,用了一個(gè)定時(shí)器T38,計(jì)數(shù)器C0,我想在子程序
中讀出他們的數(shù)值,比如。直接把C0(或T38)的值用轉(zhuǎn)換指令(I_DI)轉(zhuǎn)
換成雙整型,然后用(DI_R)轉(zhuǎn)換成實(shí)型,然后進(jìn)行浮點(diǎn)數(shù)運(yùn)算
,可以嗎?
2:在主程序中的內(nèi)部存儲(chǔ)器標(biāo)志位M,在主程序中修改,在子程
序中會(huì)相應(yīng)的改變嗎,比如在主程序中,把M0.0置位,然后進(jìn)入
子程序,子程序中的M0.0自然就是置位的。原本M0.0是個(gè)常閉的
話,執(zhí)行置位操作后就是斷開(kāi)了吧?
3.如果以上兩條都成立,我能不能這么理解,V,I,Q,M,SM,S,T,C
這些存儲(chǔ)區(qū),在主程序,子程序是通用的,可以隨便傳遞?
4.第四個(gè)問(wèn)題也讓我糾結(jié)好久了。比如,書(shū)上有這么一句話,
CPU226模塊變量存儲(chǔ)器的有效地址范圍為:V(0.0-5119.7),VB
(0-5119),VW(0-5118),VD(0-5116)。我想問(wèn)的是,這四個(gè)存儲(chǔ)區(qū)
是獨(dú)立的嗎?比如,我在VD0里存了一個(gè)實(shí)數(shù)M,然后我再用VB0
存?zhèn)€整數(shù)N,N會(huì)把M覆蓋嗎?如果能覆蓋,那就是說(shuō)我用了VD0,
后,VB0-VB7已經(jīng)都被占用了,不能用了,如果這樣也太恐怖了
點(diǎn)吧。
5.還有,觸摸屏上有設(shè)on,設(shè)off操作,如果對(duì)常開(kāi)觸點(diǎn)操作,很好理解,設(shè)on就閉合,設(shè)off就斷開(kāi),如果對(duì)常閉觸點(diǎn)操作呢? 設(shè)on后常閉還是閉合?還是動(dòng)作一下,變成常開(kāi)?如果變成常開(kāi),那設(shè)on功能不就錯(cuò)了嗎?還是應(yīng)該理解成,對(duì)常開(kāi)觸點(diǎn),設(shè)on功能讓其閉合,對(duì)閉,仍然保持常閉,不動(dòng)作。
還請(qǐng)回答
的越詳細(xì),越通俗越好。
問(wèn)題補(bǔ)充:
我就第四個(gè)問(wèn)題,做一下補(bǔ)充提問(wèn)。
1.比如雙整數(shù)到整數(shù)的轉(zhuǎn)換(DI_I):輸入VD40,輸出為VW40.(VW42,VW43是不是在轉(zhuǎn)換后,仍然存著一些類(lèi)似于亂碼的東西)。
2.整數(shù)到雙整數(shù)的轉(zhuǎn)換:輸入VW0,輸出為VD0.
這兩種做法是不是不規(guī)范,因?yàn)檩斎耄敵鲇玫搅送粋€(gè)存儲(chǔ)區(qū)。
3. 傳送指令(MOV_R),輸入為VD4,輸出為VD4,這種方法是不是不規(guī)范。 因?yàn)槲乙獜挠|摸屏輸入一個(gè)數(shù)到VD4,然后把地址&VB4傳給VD1000,然后在子程序讀VD1000里面的值。
我要問(wèn)的是,MOV_R 輸入、輸出均為VD4合適嗎?還有這個(gè)用間接尋址的思路,有什么問(wèn)題嗎?
圖片說(shuō)明: 1,采集,然后建立指針。
佳答案
1、在子程序中完全可以引用主程序中變量的數(shù)值。即在子程序中可以引用全局變量。
2、在主程序中修改可某個(gè)M標(biāo)志,在調(diào)用子程序中該M標(biāo)志肯定也會(huì)相應(yīng)改變。
3、所有全局變量在主程序、子程序中是通用的,可以隨便傳遞。
4、V(0.0-5119.7),VB(0-5119),VW(0-5118),VD(0-5116)。我想問(wèn)的是,這四個(gè)存儲(chǔ)區(qū)
是獨(dú)立的嗎?
不是獨(dú)立的,是重合的。簡(jiǎn)單地講由八個(gè)V(位)組成一個(gè)VB(字節(jié)),又由兩個(gè)VB(字節(jié))組成一個(gè)VW(字),又由兩個(gè)VW(字)組成一個(gè)VD(雙字)。換言之,一個(gè)VD(雙字)包括兩個(gè)VW(字),一個(gè)VW(字)包括兩個(gè)VB(字節(jié)),一個(gè)VB(字節(jié))包括八個(gè)V(位)。它們的地址排序:
V0.0,V0.1,V0.,2......V0.7,V,1.0......;
VB0,VB1,VB2......;
VW0,VW2,VW4,VW6......;
VD0,VD4,VD8,VD12......;
5、觸摸屏上有設(shè)on,設(shè)off操作問(wèn)題。這個(gè)問(wèn)題不要一概而論。要分清開(kāi)關(guān)與按鈕不一樣。
、如果設(shè)置為選擇開(kāi)關(guān),即ON/OFF兩個(gè)位置是保持的。一般這種應(yīng)用ON接常開(kāi),OFF接常閉。
此時(shí)可理解為設(shè)on功能讓其閉合,對(duì)與OFF的常閉,仍然保持常閉,不動(dòng)作。如果設(shè)為OFF其常閉變常開(kāi),ON變?yōu)槌i_(kāi)。
、如果設(shè)置ON/OFF各為按鈕,這個(gè)兩個(gè)按鈕按下、抬起都是一個(gè)由0變?yōu)?,、再由1變?yōu)?的過(guò)程。這種與開(kāi)關(guān)不同就是不保持,所以在編程時(shí)有注意正確應(yīng)用這種上升沿或下降沿來(lái)實(shí)現(xiàn)通與斷的操作。
、硬件中有開(kāi)關(guān)與按鈕,兩者應(yīng)用的方法不同,在軟件中也如此。