使用信捷的C函数功能块,完成3路温度传感器的“温度上限值”、“温度上上限值”、“温度下限值”、“温度下下限值”共计12路的信息报警。
使用信捷的C函数功能块,完成3路温度传感器的“温度上限值”、“温度上上限值”、“温度下限值”、“温度下下限值”共计12路的信息报警。
假设我们系统中有3个温度传感器,用于检测3组实时温度值。当其中任意一组温度值低于“温度下限值”、“温度下下限值”或者高于“温度上限值”、“温度上上限值”,就进行相关标志位报警。
如图所示,新建“函数功能块”命名为FUNC1
在D寄存区定义3组传感器的变量值,用于当作报警提醒设定值。如下图所示
在M寄存区定义3组标志位,用于当作报警提醒标志位。如下图所示
在FUNC1功能块中,编写以下代码。
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[i] )
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函数功能块,可以大大的减少梯形图程序数量。使程序更加简洁。
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.