[信捷] 信捷PLC之C函数编程(二)

[复制链接]
查看271 | 回复0 | 2024-7-21 15:42:39 | 显示全部楼层 |阅读模式
>

使用信捷的C函数功能块,完成3路温度传感器的“温度上限值”、“温度上上限值”、“温度下限值”、“温度下下限值”共计12路的信息报警。


假设我们系统中有3个温度传感器,用于检测3组实时温度值。当其中任意一组温度值低于“温度下限值”、“温度下下限值”或者高于“温度上限值”、“温度上上限值”,就进行相关标志位报警。


如图所示,新建“函数功能块”命名为FUNC1




在D寄存区定义3组传感器的变量值,用于当作报警提醒设定值。如下图所示



在M寄存区定义3组标志位,用于当作报警提醒标志位。如下图所示



在FUNC1功能块中,编写以下代码。





100篇原创文章【公众号-我的原创】

EPLAN部件库下载链接

EPLAN激活教程

西门子作为OPC UA服务端

西门子制作HMI页面切换效果



代码如下所示(可以直接复制到PLC软件中)

 

void FUNC1 ( WORD W, BIT B )

{

#define SysRegAddr_HD_D_HM_M

    //当实际值大于上限值或者上上限值时,产生报警

    for ( int i = 1; i < 3; i++ )

    {

        if ( W[0] > W )

        {

            B[i - 1] = TRUE;

        }

        else

        {

            B[i - 1] = FALSE;

        }

    }

    //当实际值小于下限值或者下下限值时,产生报警

    for ( int j = 3; j < 5; j++ )

    {

        if ( W[0] < W[j] )

        {

            B[j - 1] = TRUE;

        }

        else

        {

            B[j - 1] = FALSE;

        }

    }

}


第一个for循环用于判断传感器实际温度是否超过上限及上上限;

第二个for循环用于判断传感器实际温度是否低于下限及下下限。

 

程序编写完成后,点击“格式化”按钮和“编译按钮”,程序会自动对齐。并且可以查看编译是否有错误。



当程序存在错误,编译后会在输出框中提示错误信息。若程序不存在错误,则编译无任何提示(这个软件好歹提示个“编译完成”四个字吧!!!要不然感觉不舒服)




将这个功能块在程序中调用,即可实现监控报警。



合理使用信捷的C函数功能块,可以大大的减少梯形图程序数量。使程序更加简洁。


记得关注我~

(打赏任意金额,送部件库福利~)







免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册哦

x
您需要登录后才可以回帖 登录 | 注册哦

本版积分规则