| 作者 | 主题 |
|---|---|
|
bluekoin 侠客 经验值:603 发帖数:424 精华帖:4 |
楼主
主题:项目不带PLC,如何在WinCC中对模拟量进行转换并报警
这个项目不带PLC,通过DDE方式跟数据采集器直接通讯,然后需要在WinCC 中对采集来的100多路模拟量进行量程转换,跟高低限位比较之后触发报警。这个方式没做过,没有头绪,而且是100多路,请大家指条明路。
|
|
新湖长 侠圣 经验值:3163 发帖数:573 精华帖:15 |
3楼
主题:回复:项目不带PLC,如何在WinCC中对模拟量进行转换并报警
哪有狂澜不能力挽
|
|
bluekoin 侠客 经验值:603 发帖数:424 精华帖:4 |
15楼
主题:回复:项目不带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; |