您现在所在的是:

西门子SIEMENS

回帖:4个,阅读:1404 [上一页] [1] [下一页]
2860
302512119
文章数:1010
年度积分:50
历史总积分:2860
注册时间:2015/12/7
发站内信
发表于:2016/12/7 14:37:08
#0楼
在带功能参数子程序里,有IN\OUT\IN_OUT\TEMP这4类变量理解起来有点拗,哪位老师能不能用通俗的语句或例子分别说下使用方法,表示非常感谢
[此贴子已经被作者于2016/12/7 14:50:56编辑过]
37605
cvlsam 版主
文章数:12429
年度积分:216
历史总积分:37605
注册时间:2001/12/22
发站内信
2018论坛贡献奖
2017论坛贡献奖
2016论坛贡献奖
2015论坛贡献奖
2013论坛贡献奖
2012论坛贡献奖
2011论坛贡献奖
2011国庆活动
2010论坛杰出贡献奖
发表于:2016/12/7 15:38:18
#1楼
IN:输入参数,所有的变量都应该通过IN来输入,包括全局变量,在子程序内部,IN变量是只读变量。
OUT:输出参数,子程序通过OUT变量将需要返回的数据返回给调用子程序的程序。在子程序内部,OUT变量为只写变量。
IN_OUT:输入输出变量,通过这个变量传送的是变量的内存地址而不是副本,所以任何在子程序中改动,都会反映到实际的变量上,因为是通过指针来实现地址的传递,所以比较消耗系统资源,所以在可以用OUT替代的情况下,IN_OUT变量应尽量少用。
TEMP:临时变量,在子程序内部使用,随着子程序的调用结束,这些变量占用的地址被系统收回,但是地址中存放的内容系统不进行初始化,因此,使用TEMP变量应遵循先赋值,后使用的原则。

Good Luck~
2860
302512119
文章数:1010
年度积分:50
历史总积分:2860
注册时间:2015/12/7
发站内信
发表于:2016/12/7 16:42:51
#2楼
以下是引用cvlsam2016/12/7 15:38:18的发言:
IN:输入参数,所有的变量都应该通过IN来输入,包括全局变量,在子程序内部,IN变量是只读变量。
OUT:输出参数,子程序通过OUT变量将需要返回的数据返回给调用子程序的程序。在子程序内部,OUT变量为只写变量。
IN_OUT:输入输出变量,通过这个变量传送的是变量的内存地址而不是副本,所以任何在子程序中改动,都会反映到实际的变量上,因为是通过指针来实现地址的传递,所以比较消耗系统资源,所以在可以用OUT替代的情况下,IN_OUT变量应尽量少用。
TEMP:临时变量,在子程序内部使用,随着子程序的调用结束,这些变量占用的地址被系统收回,但是地址中存放的内容系统不进行初始化,因此,使用TEMP变量应遵循先赋值,后使用的原则。

Good Luck~
那在一个子程序中,具体在什么情况下使用OUT,什么情况使用IN_OUT,这才是让我想不明白的地方,网上看了点资料,说IN_OUT既可以做输出点,又可以做输入点,并举了启保停电路为例,您说这个例子举得合理吗
我把这个变量理解成一个中转站,这样可以吗
[此贴子已经被作者于2016/12/7 16:47:19编辑过]
10507
xlian
文章数:3232
年度积分:53
历史总积分:10507
注册时间:2002/5/7
发站内信
2018论坛热心网友
西门子PLC体验(二)
发表于:2016/12/7 17:23:14
#3楼
形参:指明参数类型
实参:调用时实际数据、根如果是输入参数可以是数据也可以是变量;如果是输出或者   输入输出参数必须是变量
输入:调用时将数据传递给子程序
输出:程序执行结束时将数据返回
输入输出:调用时将数据传递给子程序、程序执行结束时将数据返回
临时变量:在子程序内部使用
子程序里面的输入、输出、输入输出变量都是形式参数;而调用子程序时填写的数据或变量就时实际参数
8371
fujifa
文章数:2941
年度积分:57
历史总积分:8371
注册时间:2014/2/10
发站内信
2017论坛贡献奖
2016论坛贡献奖
2015论坛贡献奖
发表于:2016/12/8 9:43:00
#4楼
以下是引用3025121192016/12/7 16:42:51的发言:
以下是引用cvlsam2016/12/7 15:38:18的发言:
IN:输入参数,所有的变量都应该通过IN来输入,包括全局变量,在子程序内部,IN变量是只读变量。
OUT:输出参数,子程序通过OUT变量将需要返回的数据返回给调用子程序的程序。在子程序内部,OUT变量为只写变量。
IN_OUT:输入输出变量,通过这个变量传送的是变量的内存地址而不是副本,所以任何在子程序中改动,都会反映到实际的变量上,因为是通过指针来实现地址的传递,所以比较消耗系统资源,所以在可以用OUT替代的情况下,IN_OUT变量应尽量少用。
TEMP:临时变量,在子程序内部使用,随着子程序的调用结束,这些变量占用的地址被系统收回,但是地址中存放的内容系统不进行初始化,因此,使用TEMP变量应遵循先赋值,后使用的原则。



Good Luck~
那在一个子程序中,具体在什么情况下使用OUT,什么情况使用IN_OUT,这才是让我想不明白的地方,网上看了点资料,说IN_OUT既可以做输出点,又可以做输入点,并举了启保停电路为例,您说这个例子举得合理吗
我把这个变量理解成一个中转站,这样可以吗
[此贴子已经被作者于2016/12/7 16:47:19编辑过]

起保亭的程序不需要使用到IN_OUT变量,IN_OUT变量用于例如需要取得边沿检测的程序,例如单按钮启停。

而实际中,IN_OUT变量其实用的不多的,一般用于传递数组。不用IN_OUT仍然可以完成任务。
精通富士POD,富士PLC的编程
有问题可以直接电邮:FUJIFA@yeah.net

关于我们 | 联系我们 | 广告服务 | 本站动态 | 友情链接 | 法律声明 | 非法和不良信息举报

工控网客服热线:0755-86369299
版权所有 工控网 Copyright©2025 Gkong.com, All Rights Reserved

62.4004