首页 理论教育 复杂数据类型作为块的输入参数

复杂数据类型作为块的输入参数

时间:2023-06-30 理论教育 版权反馈
【摘要】:在块调用中,可以用复杂数据类型作为块的实参,用它将一组数据传送到被调用块,或者用复杂数据类型将一组数据返回给调用它的块。生成名为“求累加值”的函数FC1,在FC1的接口区生成一个输入参数“输入数组”,它是有3个Int元素的数组,再生成一个数据类型为Int的输出参数“电流和”。在OB1中两次调用FC1,用数组“1号机电流”和“2号机电流”做输入参数,运行结果用变量“1号机总电流”和“2号机总电流”保存。

复杂数据类型作为块的输入参数

在块调用中,可以用复杂数据类型作为块的实参,用它将一组数据传送到被调用块,或者用复杂数据类型将一组数据返回给调用它的块。通过这种方式,可以高效而简洁地在主调块和被调用块之间传递数据。

下面的例子用数组作为函数的输入参数。将数组作为参数传递时,作为形参和实参的两个数组应有相同的结构,例如两个一维数组的元素数据类型和数组下标的上、下限值都相同。

新建一个名为“数组做输入”的项目(见随书光盘中的同名例程),CPU为CPU 1214C。生成名为“求累加值”的函数FC1,在FC1的接口区生成一个输入参数“输入数组”,它是有3个Int元素的数组(见图4-14),再生成一个数据类型为Int的输出参数“电流和”。数组用于保存电动机的三相电流,图中的ADD指令将数组的3个Int元素相加,得到三相电流之和。

生成名为“机组电流”的共享数据块DB1,在DB1中生成有3个Int元素的数组“1号机电流”和“2号机电流”,其数据类型均为Array[0..2] of Int。还生成了数据类型为Int的“1号机总电流”和“2号机总电流”。在OB1中两次调用FC1(见图4-16),用数组“1号机电流”和“2号机电流”做输入参数,运行结果用变量“1号机总电流”和“2号机总电流”保存。

双击指令树的“监控与强制”文件夹中的“添加新监控表”,生成“监控表_1”(见图4-15)。在监控表中设置1号机和2号机的三相电流值。下载到CPU后,可以看到OB1的程序状态中FC1计算出的1号机和2号机的总电流(见图4-16)。

978-7-111-58719-4-Chapter04-21.jpg(www.xing528.com)

图4-14 FC1的块接口和程序

978-7-111-58719-4-Chapter04-22.jpg

图4-15 监控表

978-7-111-58719-4-Chapter04-23.jpg

图4-16 在OB1中调用FC1

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈