愛(ài)家愛(ài)china
愛(ài)家愛(ài)china
級別: 家園?
![]() |
本人對200里帶參數子程序了解不多,今天隨便編了個(gè)程序,卻發(fā)現個(gè)令人困惑的問(wèn)題,程序見(jiàn)附件。 當我按下I0.0或i0.2時(shí),Q0.0和Q1.1都是同時(shí)輸出,隨便按下I0.1或I0.3, Q0.0和Q1.1也都是同時(shí)熄滅。 想請問(wèn)這是什么緣故?如果像這樣的話(huà),那么在實(shí)際程序中,要調用多個(gè)相同的帶參數子程序時(shí)怎么來(lái)用才能避免這種問(wèn)題? 不要說(shuō)分開(kāi)調用 這個(gè)設備就是很多重復的地方 而且需要同時(shí)調用 ![]() ![]() |
|
---|---|---|
|
愛(ài)家愛(ài)china
愛(ài)家愛(ài)china
級別: 家園?
![]() |
沉得太快了 |
|
---|---|---|
|
sjm213
有小知識,無(wú)大學(xué)問(wèn)。
級別: 論壇版主
![]() ![]() ![]() ![]() |
http://support.automation.siemens.com/CN/llisapi.dll?func=cslib.csinfo&lang=zh&siteid=cseus&objid=7116338 在S7-200的子程序中使用局部變量類(lèi)型 OUT 和 TEMP 時(shí)需要注意什么? 說(shuō)明: S7-200有一類(lèi)用作臨時(shí)存儲或傳遞形參的局部存儲器。 局部存儲器: 給主程序分配64字節局部存儲器 給共8級的每一級子程序嵌套分配64字節局部存儲器 給中斷服務(wù)程序分配64字節局部存儲器 注意: 如果使用 LAD 或 FBD 編程,局部存儲器的最后四個(gè)字節為 STEP 7 Micro/WIN 保留。 如果在 STEP 7 Micro/WIN 中的同一級嵌套里調用多個(gè)子程序,那么這些子程序使用相同的局部存儲器。 當使用變量類(lèi)型 OUT 和 TEMP 時(shí),這些局部地址從相同嵌套級別的前一子程序取值。 預先定義的局部變量會(huì )生成正確的結果。如果不預先定義,相同嵌套級別的上一次被調用的子程序中的值會(huì )被保持。這樣會(huì )導致問(wèn)題,特別是在邊沿信號檢測時(shí)。 原因: 當子程序被調用時(shí),局部數據類(lèi)型 IN 和 TEMP 不被初始化和刪除。 但是,局部數據類(lèi)型 IN 和 IN_OUT 在子程序開(kāi)始調用時(shí)被定義為分配的值或全局變量。 措施: 將局部輸出變量定義為 "IN/OUT" ,而不是 "OUT" 或 "TEMP" 可以增加可靠性。在下一個(gè)循環(huán)選擇全局變量做進(jìn)一步測試。 為了評估這種行為,可以在開(kāi)發(fā)程序時(shí)在每一嵌套級別的網(wǎng)絡(luò )1中調用子程序。 通過(guò)檢查程序功能,可以快速發(fā)現選錯的變量類(lèi)型。 |
---|---|
|
愛(ài)家愛(ài)china
愛(ài)家愛(ài)china
級別: 家園?
![]() |
恩 只是flag怎么賦值呢?是直接用位存儲器?還是?弄個(gè)圖片吧 |
|
---|---|---|
|
愛(ài)家愛(ài)china
愛(ài)家愛(ài)china
級別: 家園?
![]() |
繼續頂上去 |
|
---|---|---|
|