降央卓玛演唱走天涯:画面显示问题
来源:百度文库 编辑:九乡新闻网 时间:2024/04/28 20:51:55
画面显示问题
分类: WinCC 我有3个图片,要求当一个二进制数a等于1,并且一个8位无符号整数b等于1、2、3时,分别显示1号、2号、3号图片,同时要求8位无符号整数b每固定时间间隔从1--2--3--1进行循环变化,实现3个图片的交替显示。希望回答的把c语言的语句,回答准确些,谢谢了,急。问题补充:我说的变量a,实际上是一个反馈点,我想做的是当反馈有信号时,图片就显示,同时变量b是一个中间变量,时时的从1--2--3---1变化,对应3个图片的显示,也就是说,我想要3图片的显示是分别满足a==1且b==1,和a==1且b==2,a==1且b==3。用动态对话框,只能满足一个条件,所以我想用c语言编写,但是不会。
RE
首先我要显示的是图片,不是画面,在有就是我最基本的要求就是3个图片的显示是2个变量“与”的关系,所以在图片的“显示”动态属性那用动态对话框无法实现,如果用c语言编写,那里根本就不让用SetVisible(lpszPictureName,pic,1)这个函数,所以我才头疼。
============================================
你可以使用脚本来实现
采用时间触发
补充:楼上这样做,三个图片是不是切换的很快,间隔时间就没法控制了。图片切换过快我怀疑更本看不清。
b
你先在主画面上放上三个“画面窗口”Pic1、Pic2、Pic3然后在把三个要循环显示的“画面”分别连接到三个画面窗口中,然后做个全局动作循环时间为10秒,等等,如果你的循环显示的周期是固定的话,让脚本周期性扫描变量的值,然后再显示相应的画面窗口,这样不就OK了,参考下面的脚本就可以了
if
{
if
{
SetVisible(lpszPictureName,"Pic1",TRUE);
SetVisible(lpszPictureName,"Pic2",FALSE);
SetVisible(lpszPictureName,"Pic3",FASLE);
SetTagByte("B",2);
}
else
{
}
}
return
=============================================
a为布尔变量,b为双整数。
方法一:
BOOL
DWORD
a=GetTagBit("a");
b=GetTagWord("b");
b=b+1;
SetTagDouble("b",b);
if
SetTagDouble("b",1);
if
{
SetVisible("NewPdl0.Pdl","one",1);
}
else
SetVisible("NewPdl0.Pdl","one",0);
if
{
SetVisible("NewPdl0.Pdl","GraphicObject2",1);
else
SetVisible("NewPdl0.Pdl","GraphicObject2",0);
{
SetVisible("NewPdl0.Pdl","GraphicObject3",1);
}
else
SetVisible("NewPdl0.Pdl","GraphicObject3",0);
方法二:
在全局脚本中添加如下代码:
BOOL
DWORD
a=GetTagBit("a");
b=GetTagWord("b");
b=b+1;
SetTagDouble("b",b);
if
SetTagDouble("b",1);
========================================
1、首先建两个全局变量:a、b
2、写一个脚本,脚本使用时间做触发器,要多长时间根据需要改!
if(b>=3||b<1),则b=1;if(b==1),则b=2;if(b==2),则b=3;
3、在三个图片的显示属性中,将条件公式写为
在第一个画面显示属性里
在第二个画面显示属性里
在第三个画面显示属性里