项目不带PLC,如何在WinCC中对模拟量进行转换并报警
这个项目不带PLC,通过DDE方式跟数据采集器直接通讯,然后需要在WinCC中对采集来的100多路模拟量进行量程转换,跟高低限位比较之后触发报警。这个方式没做过,没有头绪...
这个项目不带PLC,通过DDE方式跟数据采集器直接通讯,然后需要在WinCC中对采集来的100多路模拟量进行量程转换,跟高低限位比较之后触发报警。这个方式没做过,没有头绪,而且是100多路,请大家指条明路。
展开
2013-09-26
展开全部
谢谢大家的回复,楼上朋友的方法对于量程是固定的变量来说,无疑是非常合适的,但是我这里忘了说,我这些变量的量程是需要在画面上来设定的,也就是说要做成通用型的,客户按照实际接的模拟量类型,需要在画面上修改量程。这个项目的目的是做成通用型的,而不是专用的项目型,所以变量的地址等都要求很灵活,给用户权限来更改。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
上海巴鲁图工程机械科技有限公司_
2022-05-15 广告
2022-05-15 广告
光电编码器,是一种通过光电转换将输出轴上的机械几何位移量转换成脉冲或数字量的传感器。光电编码器每转输出60(我们用老板没有说)个脉冲,五线制。其中两根为电源线,三根为脉冲线(A相、B相、Z)。电源的工作电压为 (+5~+24V)直流电源。光...
点击进入详情页
本回答由上海巴鲁图工程机械科技有限公司_提供
2013-09-26
展开全部
用脚本来计算最终的输出值,同样,用脚本来判断这个输出值是否超出设定值,即是否有报警发生(报警变量,BIT型),这样,模拟量报警就变成了位报警了。更容易处理了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-09-26
展开全部
谢谢大家的指导,目前这个功能在全局脚本中已经实现,代码共享如下:inti;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"};floatAI[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]);}return0;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询