问题1:想做历史趋势画面,加了2个控件,随意控制曲线名称,以后可以重复利用的。
以下是自己参考论坛里的资料的写的,觉得不怎么好,想改进一下:
请问:1.我手动对曲线的属性修改,如曲线颜色,时间宽度,起始时间等等,其实我想知道这些属性、参数值的写法(最好把常用的属性及其参数值说多点)
2.麻烦把对下面的代码写法完善一点。现在只是简单的实现功能,如果设置时间什么的,还要到里面设置,比较繁琐。
3.查归档时,发现无法查询前天的数据,这是为什么啊?是不是我的归档设置里的数据库设置小了啊?我想查询半月或更长的应该怎么设置。
这是一条曲线的代码
Sub OnClick(Byval Item)
Dim trendObj1,trendObj2
Set trendObj1=ScreenItems("Control1")
Set trendObj2=ScreenItems("Control2")
trendObj1.Visible = True
trendObj2.Visible = False
trendObj1.Caption ="Ractor/Level_PID1.PV_IN"
trendObj1.TagName ="AS08_server::SystemArchive\Ractor/Level_PID1.PV_IN"
End Sub
这是三条曲线的代码
Sub OnClick(ByVal Item)
Dim trendObj1,trendObj2
Set trendObj1=ScreenItems("Control1")
Set trendObj2=ScreenItems("Control2")
trendObj1.Visible = False
trendObj2.Visible = True
trendObj2.Caption ="PID"
trendObj2.Index = 0
trendObj2.TagName ="AS08_server::SystemArchive\Ractor/Level_PID1.PV_IN"
trendObj2.Index = 1
trendObj2.TagName ="AS08_server::SystemArchive\Ractor/Level_PID1.SP"
trendObj2.Index = 2
trendObj2.TagName ="AS08_server::SystemArchive\Ractor/Level_PID1.LMN"
End Sub
问题2
参考:http://www.ad.siemens.com.cn/service/answer/solution.asp?Q_id=26590&cid=1032 我对块的SMC属性修改后(对某一阀门块FB73进行了修改),pcs7编译发现所有的块都不能上传了,编译后出现一警告,意思是对变量作了比较,不一致什么的。后来我恢复原样后,又好了。(有些属性我知道是不能取消的,所以我选了不重要的变量) 请问这是什么原因啊?
问题3
请教一段c脚本函数 function(bool a,bool b,bool c),返回真假就可以啦,想在变量的动态对话框中直接调用全局C函数,就是求几个bool量的或值。
问题补充:
dcount107 你好,我在全局库中改了后,复制后拷贝到AS项目块中,发现还是不行,编译后记录中有:
列出过程标签的参数:
BA_EN BA_ID BA_NA HYS MO_PVHR MO_PVLR MSG_LOCK M_SUP_AH M_SUP_AL M_SUP_WH M_SUP_WL OCCUPIED OOS QERR QMSG_SUP STEP_NO U U_AH U_AL U_WH U_WL VSTATUS
操作员控制连接列表:
BA_EN BA_ID BA_NA HYS MO_PVHR MO_PVLR MSG_LOCK M_SUP_AH M_SUP_AL M_SUP_WH M_SUP_WL OOS QERR QMSG_SUP STEP_NO U U_AH U_AL U_WH U_WL VSTATUS
*** 出错 ***: 结构化 DM 变量 Ractor/Level_PID1_PV(类型 MEAS_MON)的 参数数量与操作员控制的连接数量不匹配。 是否要显示日志?
请问这怎么解决?是不是更新的方法不对。顺便问下,全局库中修改了后,怎么更新所有子项目中的块。
找到了,在blocks/options/charts/update 吧?对所有的AS进行统一的更新。
最佳答案
你的问题还真多啊,呵呵。
问题1:
1.VBS支持自动列出对象属性的,常用的有Color(曲线颜色,和Index配合使用),BeginTime(起始时间,格式yyyy-mm-dd HH:MM:SS),EndTime(结束时间,格式yyyy-mm-dd HH:MM:SS),这些在帮助中都有。
2.我印象中VBS做不到动态设置OnlineTrend的时间段。C脚本倒是没有问题。如果你用VBS实现了请别忘了告诉我,^_^!
SetPropDouble(lpszPictureName,"OnlineTrend1","Online",0); '停止更新
SetPropDouble(lpszPictureName,"OnlineTrend1","Timerange",0);
SetPropChar(lpszPictureName,"OnlineTrend1","BeginTime","2008-9-11 22:10:0"); ’设置起始时间
SetPropChar(lpszPictureName,"OnlineTrend1","EndTime","2008-9-11 22:11:00"); '设置终止时间
SetPropDouble(lpszPictureName,"OnlineTrend1","Activate",0); '
SetPropDouble(lpszPictureName,"OnlineTrend1","Activate",1); '更新数据,VBS中的Activate与此意义不同,我想这可能是VBS无法实现的原因吧。
3.应该是你设置的太小了。到变量记录中,选择归档名称,选择快速归档,查看单个/所有分段的时间段设置。
问题2:你可能没改好。修改FBxx块应当是在"项目_Lib"中修改,然后统一更新。
问题3:你要的是这个吗?
BOOL TestFunc(BOOL a,BOOL b,BOOL c)
{
return (a||b||c);
}
其实这个根本用不着编写函数,动态对话框中直接写就可以,'TagA'||'TagB'||'TagC' 。
补充:修改Lib中的FB_xx后,再拖一个到CFC中,根据系统提示替换现有块,最后完全编译一次。但我没有用过Ractor块,不知道WinCC的面板是否引用了哪些变量,因此我建议你还是不要随意修改的好。
提问者对于答案的评价:
问题基本上搞清楚了。谢谢您。ractor块是西门子的仿真块,培训的时候拷过来的,不是系统带的。
原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc276065.html