gk_樂一
級別: 探索解密
精華主題: 0
發(fā)帖數(shù)量: 109 個(gè)
工控威望: 182 點(diǎn)
下載積分: 2993 分
在線時(shí)間: 53(小時(shí))
注冊時(shí)間: 2019-12-20
最后登錄: 2024-12-20
查看gk_樂一的 主題 / 回貼
樓主  發(fā)表于: 2021-01-22 14:47
如題,子程序需要用到很多實(shí)數(shù)的中間變量,到LD56就不能用了,能否類似系統(tǒng)庫文件那個(gè),外部調(diào)用全局變量
[ 此帖被gk_樂一在2021-01-25 17:39重新編輯 ]
gk_樂一
級別: 探索解密
精華主題: 0
發(fā)帖數(shù)量: 109 個(gè)
工控威望: 182 點(diǎn)
下載積分: 2993 分
在線時(shí)間: 53(小時(shí))
注冊時(shí)間: 2019-12-20
最后登錄: 2024-12-20
查看gk_樂一的 主題 / 回貼
1樓  發(fā)表于: 2021-01-25 17:45
子程序的確是開發(fā)外部接口的,我現(xiàn)在遇到的問題是我需要用到大量的實(shí)數(shù)型中間變量,但是子程序的局部變量最大只能用到LD56(64個(gè)字節(jié),最后4個(gè)系統(tǒng)占用)
我在想,能否類似modbus通訊庫那種,用分配庫地址的方式,來定義或者說是分配子程序中字節(jié)不夠的問題,不知道我的表達(dá)是否準(zhǔn)確
引用
引用第1樓湛藍(lán)小爾于2021-01-23 11:12發(fā)表的  :
子程序本來不就是開放外部接口,不然,你是個(gè)假子程序,里面用全局。 [attachment=251991]
gk_樂一
級別: 探索解密
精華主題: 0
發(fā)帖數(shù)量: 109 個(gè)
工控威望: 182 點(diǎn)
下載積分: 2993 分
在線時(shí)間: 53(小時(shí))
注冊時(shí)間: 2019-12-20
最后登錄: 2024-12-20
查看gk_樂一的 主題 / 回貼
2樓  發(fā)表于: 2021-01-25 17:46
全局變量,你只要是用V的全局變量,不管用到哪里都是全局變量
引用
引用第2樓zhou1211于2021-01-24 10:50發(fā)表的  :

不會吧,全局變量要是子程序不能用,那還叫全局變量?
gk_樂一
級別: 探索解密
精華主題: 0
發(fā)帖數(shù)量: 109 個(gè)
工控威望: 182 點(diǎn)
下載積分: 2993 分
在線時(shí)間: 53(小時(shí))
注冊時(shí)間: 2019-12-20
最后登錄: 2024-12-20
查看gk_樂一的 主題 / 回貼
3樓  發(fā)表于: 2021-01-28 15:10
這倒是一個(gè)思路,可以試試
引用
引用第5樓sjbandmm于2021-01-25 20:40發(fā)表的  :
子程序就這么多局部變量,接口用局部變量,中間變量完全可以用全局變量,比如將vw0-vw198用作中間變量,那么即便多個(gè)子程序重復(fù)使用也是沒問題的,記得每次使用前復(fù)位一次就好了(其實(shí)不復(fù)位也可以,總是要賦值的)。中間變量為什么一定要用局部變量,我沒明白。
gk_樂一
級別: 探索解密
精華主題: 0
發(fā)帖數(shù)量: 109 個(gè)
工控威望: 182 點(diǎn)
下載積分: 2993 分
在線時(shí)間: 53(小時(shí))
注冊時(shí)間: 2019-12-20
最后登錄: 2024-12-20
查看gk_樂一的 主題 / 回貼
4樓  發(fā)表于: 2021-01-28 15:12
就是不知道怎么搞
引用
引用第6樓gxtmdb82164于2021-01-26 09:21發(fā)表的  :


可以,西門子有專門的文檔講這個(gè),可以去找來看一下
實(shí)際操作中等于就是使用了外部V空間的變量,不過這個(gè)V區(qū)地址是不固定的,跟著具體的項(xiàng)目文件走,一般是自己出一個(gè)偏移地址的變量表來定義各個(gè)變量的詳細(xì)信息,西門子自己官方出的很多庫最后也是會給V區(qū)變量的說明的.

.......