前言:
目前各位老铁们对“c语言值传递函数怎么写”大概比较重视,小伙伴们都需要学习一些“c语言值传递函数怎么写”的相关内容。那么小编同时在网摘上收集了一些对于“c语言值传递函数怎么写””的相关资讯,希望你们能喜欢,你们快快来了解一下吧!前两篇文章,我们介绍了如何新建一个函数功能块文件。也介绍了如何使用函数功能块实现温度检测上限、下限等的报警输出。
这一篇来详细介绍函数体的W和B是什么意思,以及我们如何使用它。
首先,新建一个函数功能块,命名为FUNC1,在FUNC1中输入以下代码,如图所示:
代码内容见下文,也可以直接复制到程序中使用。
void FUNC1 ( WORD W, BIT B )
{
#define SysRegAddr_HD_D_HM_M
if ( B[0] == true )
{
W[0] = 10;
}
else
{
W[0] = 9;
}
if ( B[1] == true )
{
W[1] = 20;
}
else
{
W[1] = 19;
}
}
格式化及编译后,程序不报错。如下图所示:
函数如下所示:void FUNC1 ( WORD W, BIT B )
其中的void为函数返回为空
FUNC1为我们定义的函数名称
其中的WORD W是形参,表示要传递给函数一个WORD类型的参数,即16位字类型的参数。
其中的BIT B也是形参,表示要传递给函数一个BIT类型的参数,即BOOL类型的参数。
100篇原创文章【公众号-我的原创】
EPLAN部件库下载链接
EPLAN激活教程
西门子作为OPC UA服务端
西门子制作HMI页面切换效果
在函数中我们使用W[0]、W[1]、W[2]、W[3]等,表示的是传给函数的WORD类型的寄存器往后顺延的地址。
例如:我将FUNC1的函数引用到主程序中,使用的是如下图所示的实现方式
LD SM0
FUNC1 D30 M10实现
则刚刚所讲述的在FUNC1中的W[0]、W[1]、W[2]、W[3]对应程序D寄存器的D30、D31、D32、D33等。
若调用的函数的第一个形参(指的是WORD W)给定的是D55,则W[0]、W[1]、W[2]、W[3]等分别对应的是D55、D56、D57、D58等等。
在函数中void FUNC1 ( WORD W, BIT B )中的BIT B 也是和WORD W具有相同的使用方式。
在程序中,将BIT B传入M10,则在FUNC1函数中使用的B[0]、B[1]、B[2]、B[3]等依次对应的寄存器M10、M11、M12、M13等。
但是需要注意的是,这款编程软件使用C函数编程,是区分大小写的例如,将W[0]=30;写成w[0]=30;(W被小写),则程序编译时候会报错。
信捷PLC之C函数编程(三)
(出处: PLC论坛-全力打造可编程控制器专业技术论坛)
#编程十年是一种什么样的感受#
标签: #c语言值传递函数怎么写