gk_乐一
级别: 探索解密
精华主题: 0
发帖数量: 104 个
工控威望: 177 点
下载积分: 2573 分
在线时间: 46(小时)
注册时间: 2019-12-20
最后登录: 2024-05-10
查看gk_乐一的 主题 / 回贴
楼主  发表于: 2021-01-22 14:47
如题,子程序需要用到很多实数的中间变量,到LD56就不能用了,能否类似系统库文件那个,外部调用全局变量
[ 此帖被gk_乐一在2021-01-25 17:39重新编辑 ]
gk_乐一
级别: 探索解密
精华主题: 0
发帖数量: 104 个
工控威望: 177 点
下载积分: 2573 分
在线时间: 46(小时)
注册时间: 2019-12-20
最后登录: 2024-05-10
查看gk_乐一的 主题 / 回贴
1楼  发表于: 2021-01-25 17:45
子程序的确是开发外部接口的,我现在遇到的问题是我需要用到大量的实数型中间变量,但是子程序的局部变量最大只能用到LD56(64个字节,最后4个系统占用)
我在想,能否类似modbus通讯库那种,用分配库地址的方式,来定义或者说是分配子程序中字节不够的问题,不知道我的表达是否准确
引用
引用第1楼湛蓝小尔于2021-01-23 11:12发表的  :
子程序本来不就是开放外部接口,不然,你是个假子程序,里面用全局。 [attachment=251991]
gk_乐一
级别: 探索解密
精华主题: 0
发帖数量: 104 个
工控威望: 177 点
下载积分: 2573 分
在线时间: 46(小时)
注册时间: 2019-12-20
最后登录: 2024-05-10
查看gk_乐一的 主题 / 回贴
2楼  发表于: 2021-01-25 17:46
全局变量,你只要是用V的全局变量,不管用到哪里都是全局变量
引用
引用第2楼zhou1211于2021-01-24 10:50发表的  :

不会吧,全局变量要是子程序不能用,那还叫全局变量?
gk_乐一
级别: 探索解密
精华主题: 0
发帖数量: 104 个
工控威望: 177 点
下载积分: 2573 分
在线时间: 46(小时)
注册时间: 2019-12-20
最后登录: 2024-05-10
查看gk_乐一的 主题 / 回贴
3楼  发表于: 2021-01-28 15:10
这倒是一个思路,可以试试
引用
引用第5楼sjbandmm于2021-01-25 20:40发表的  :
子程序就这么多局部变量,接口用局部变量,中间变量完全可以用全局变量,比如将vw0-vw198用作中间变量,那么即便多个子程序重复使用也是没问题的,记得每次使用前复位一次就好了(其实不复位也可以,总是要赋值的)。中间变量为什么一定要用局部变量,我没明白。
gk_乐一
级别: 探索解密
精华主题: 0
发帖数量: 104 个
工控威望: 177 点
下载积分: 2573 分
在线时间: 46(小时)
注册时间: 2019-12-20
最后登录: 2024-05-10
查看gk_乐一的 主题 / 回贴
4楼  发表于: 2021-01-28 15:12
就是不知道怎么搞
引用
引用第6楼gxtmdb82164于2021-01-26 09:21发表的  :


可以,西门子有专门的文档讲这个,可以去找来看一下
实际操作中等于就是使用了外部V空间的变量,不过这个V区地址是不固定的,跟着具体的项目文件走,一般是自己出一个偏移地址的变量表来定义各个变量的详细信息,西门子自己官方出的很多库最后也是会给V区变量的说明的.

.......