发表于:2026/1/29 22:58:53
#0楼
就是一个内部变量关联外部浮点数变量,做一个声音报警。结果运行测试没有反应。。这段代码中我都是用内部变量做的。
C脚本:#include "apdefap.h"
void OnPropertyChanged(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName, double value)
{
// 定义变量:外部浮点数(PLC连接)、内部二进制(WinCC内部)
float datVal = GetTagFloat("测试1"); // 替换为实际浮点数变量名
BOOL nbVal = GetTagBit("测试4"); // 替换为实际二进制变量名
// 阈值判断:浮点数≥3.5置位,≤1.5置位, 否则复位(可修改判断条件:> / < / ≤ / 区间)&&
if( datVal<= 1.5 && datVal>= 3.5 )
{
if(nbVal == 0) SetTagBit("测试4", 1); // 置位
}
else
{
if(nbVal == 1) SetTagBit("测试4", 0); // 复位
}
}
C脚本:#include "apdefap.h"
void OnPropertyChanged(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName, double value)
{
// 定义变量:外部浮点数(PLC连接)、内部二进制(WinCC内部)
float datVal = GetTagFloat("测试1"); // 替换为实际浮点数变量名
BOOL nbVal = GetTagBit("测试4"); // 替换为实际二进制变量名
// 阈值判断:浮点数≥3.5置位,≤1.5置位, 否则复位(可修改判断条件:> / < / ≤ / 区间)&&
if( datVal<= 1.5 && datVal>= 3.5 )
{
if(nbVal == 0) SetTagBit("测试4", 1); // 置位
}
else
{
if(nbVal == 1) SetTagBit("测试4", 0); // 复位
}
}
[此贴子已经被作者于2026/1/29 22:59:28编辑过]





