技术论坛

 项目不带PLC,如何在WinCC中对模拟量进行转换并报警

返回主题列表
作者 主题
bluekoin
侠客

经验值:603
发帖数:424
精华帖:4
楼主    2011-08-14 19:26:06
主题:项目不带PLC,如何在WinCC中对模拟量进行转换并报警
这个项目不带PLC,通过DDE方式跟数据采集器直接通讯,然后需要在WinCC 中对采集来的100多路模拟量进行量程转换,跟高低限位比较之后触发报警。这个方式没做过,没有头绪,而且是100多路,请大家指条明路。
新湖长
侠圣

经验值:3163
发帖数:573
精华帖:15
3楼    2011-08-15 08:49:17
精华帖  主题:回复:项目不带PLC,如何在WinCC中对模拟量进行转换并报警
在变量属性 如图所示,勾选线性标定。
哪有狂澜不能力挽
bluekoin
侠客

经验值:603
发帖数:424
精华帖:4
15楼    2011-08-20 20:47:22
精华帖  主题:回复:项目不带PLC,如何在WinCC中对模拟量进行转换并报警
谢谢大家的指导,目前这个功能在全局脚本中已经实现,代码共享如下:
int i;
char *cTagname[8]={"AI0-Test","AI1-Test","AI2-Test","AI3-Test","AI4-Test","AI5-Test","AI6-Test","AI7-Test"};
char *cHRange[8]={"AI_CH0_HRange","AI_CH1_HRange","AI_CH2_HRange","AI_CH3_HRange","AI_CH4_HRange","AI_CH5_HRange","AI_CH6_HRange","AI_CH7_HRange"};
char *cLRange[8]={"AI_CH0_LRange","AI_CH1_LRange","AI_CH2_LRange","AI_CH3_LRange","AI_CH4_LRange","AI_CH5_LRange","AI_CH6_LRange","AI_CH7_LRange"};
char *cTagConverted[8]={"AI_CH0_Converted","AI_CH1_Converted","AI_CH2_Converted","AI_CH3_Converted","AI_CH4_Converted","AI_CH5_Converted","AI_CH6_Converted",
"AI_CH7_Converted"};

float AI[8],HiRange[8],LoRange[8],AIConverted[8];

for (i=0;i<=7;i++)
{
AI[i]=GetTagFloat(cTagname[i]);
HiRange[i]=GetTagFloat(cHRange[i]);
LoRange[i]=GetTagFloat(cLRange[i]);
AIConverted[i]=(AI[i]/27648)*(HiRange[i]-LoRange[i])+LoRange[i];
SetTagFloat(cTagConverted[i],AIConverted[i]);
}
return 0;
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。