gk_樂一
級(jí)別: 探索解密
精華主題: 0
發(fā)帖數(shù)量: 109 個(gè)
工控威望: 182 點(diǎn)
下載積分: 2963 分
在線時(shí)間: 53(小時(shí))
注冊(cè)時(shí)間: 2019-12-20
最后登錄: 2024-11-12
查看gk_樂一的 主題 / 回貼
樓主  發(fā)表于: 2021-01-22 14:47
如題,子程序需要用到很多實(shí)數(shù)的中間變量,到LD56就不能用了,能否類似系統(tǒng)庫文件那個(gè),外部調(diào)用全局變量
[ 此帖被gk_樂一在2021-01-25 17:39重新編輯 ]
湛藍(lán)小爾
工控交流 Q703935819
級(jí)別: 家園?

精華主題: 0
發(fā)帖數(shù)量: 349 個(gè)
工控威望: 642 點(diǎn)
下載積分: 2101 分
在線時(shí)間: 80(小時(shí))
注冊(cè)時(shí)間: 2014-03-03
最后登錄: 2024-07-10
查看湛藍(lán)小爾的 主題 / 回貼
1樓  發(fā)表于: 2021-01-23 11:12
子程序本來不就是開放外部接口,不然,你是個(gè)假子程序,里面用全局。
專心搞錢
Q群943838323   博圖
Q群703935819   昆侖通態(tài)
zhou1211
級(jí)別: 略有小成
精華主題: 1 篇
發(fā)帖數(shù)量: 205 個(gè)
工控威望: 362 點(diǎn)
下載積分: 1172 分
在線時(shí)間: 66(小時(shí))
注冊(cè)時(shí)間: 2013-11-04
最后登錄: 2024-09-18
查看zhou1211的 主題 / 回貼
2樓  發(fā)表于: 2021-01-24 10:50
引用
引用第1樓湛藍(lán)小爾于2021-01-23 11:12發(fā)表的  :
子程序本來不就是開放外部接口,不然,你是個(gè)假子程序,里面用全局。 [attachment=251991]

不會(huì)吧,全局變量要是子程序不能用,那還叫全局變量?
gk_樂一
級(jí)別: 探索解密
精華主題: 0
發(fā)帖數(shù)量: 109 個(gè)
工控威望: 182 點(diǎn)
下載積分: 2963 分
在線時(shí)間: 53(小時(shí))
注冊(cè)時(shí)間: 2019-12-20
最后登錄: 2024-11-12
查看gk_樂一的 主題 / 回貼
3樓  發(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_樂一
級(jí)別: 探索解密
精華主題: 0
發(fā)帖數(shù)量: 109 個(gè)
工控威望: 182 點(diǎn)
下載積分: 2963 分
在線時(shí)間: 53(小時(shí))
注冊(cè)時(shí)間: 2019-12-20
最后登錄: 2024-11-12
查看gk_樂一的 主題 / 回貼
4樓  發(fā)表于: 2021-01-25 17:46
全局變量,你只要是用V的全局變量,不管用到哪里都是全局變量
引用
引用第2樓zhou1211于2021-01-24 10:50發(fā)表的  :

不會(huì)吧,全局變量要是子程序不能用,那還叫全局變量?
sjbandmm
級(jí)別: 略有小成
精華主題: 0
發(fā)帖數(shù)量: 237 個(gè)
工控威望: 407 點(diǎn)
下載積分: 987 分
在線時(shí)間: 167(小時(shí))
注冊(cè)時(shí)間: 2008-08-23
最后登錄: 2024-05-22
查看sjbandmm的 主題 / 回貼
5樓  發(fā)表于: 2021-01-25 20:40
子程序就這么多局部變量,接口用局部變量,中間變量完全可以用全局變量,比如將vw0-vw198用作中間變量,那么即便多個(gè)子程序重復(fù)使用也是沒問題的,記得每次使用前復(fù)位一次就好了(其實(shí)不復(fù)位也可以,總是要賦值的)。中間變量為什么一定要用局部變量,我沒明白。
gxtmdb82164
級(jí)別: 論壇先鋒
精華主題: 0
發(fā)帖數(shù)量: 749 個(gè)
工控威望: 1127 點(diǎn)
下載積分: 357 分
在線時(shí)間: 589(小時(shí))
注冊(cè)時(shí)間: 2019-09-22
最后登錄: 2024-11-12
查看gxtmdb82164的 主題 / 回貼
6樓  發(fā)表于: 2021-01-26 09:21
引用
引用第3樓gk_樂一于2021-01-25 17:45發(fā)表的  :
子程序的確是開發(fā)外部接口的,我現(xiàn)在遇到的問題是我需要用到大量的實(shí)數(shù)型中間變量,但是子程序的局部變量最大只能用到LD56(64個(gè)字節(jié),最后4個(gè)系統(tǒng)占用)
我在想,能否類似modbus通訊庫那種,用分配庫地址的方式,來定義或者說是分配子程序中字節(jié)不夠的問題,不知道我的表達(dá)是否準(zhǔn)確



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

印象中是只要在子程序中使用了V區(qū)變量,然后在封裝庫的時(shí)候會(huì)有相應(yīng)的提示,可以自己試試.
gk_樂一
級(jí)別: 探索解密
精華主題: 0
發(fā)帖數(shù)量: 109 個(gè)
工控威望: 182 點(diǎn)
下載積分: 2963 分
在線時(shí)間: 53(小時(shí))
注冊(cè)時(shí)間: 2019-12-20
最后登錄: 2024-11-12
查看gk_樂一的 主題 / 回貼
7樓  發(fā)表于: 2021-01-28 15:10
這倒是一個(gè)思路,可以試試
引用
引用第5樓sjbandmm于2021-01-25 20:40發(fā)表的  :
子程序就這么多局部變量,接口用局部變量,中間變量完全可以用全局變量,比如將vw0-vw198用作中間變量,那么即便多個(gè)子程序重復(fù)使用也是沒問題的,記得每次使用前復(fù)位一次就好了(其實(shí)不復(fù)位也可以,總是要賦值的)。中間變量為什么一定要用局部變量,我沒明白。
gk_樂一
級(jí)別: 探索解密
精華主題: 0
發(fā)帖數(shù)量: 109 個(gè)
工控威望: 182 點(diǎn)
下載積分: 2963 分
在線時(shí)間: 53(小時(shí))
注冊(cè)時(shí)間: 2019-12-20
最后登錄: 2024-11-12
查看gk_樂一的 主題 / 回貼
8樓  發(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ì)信息,西門子自己官方出的很多庫最后也是會(huì)給V區(qū)變量的說明的.

.......