标题:
WINCC 损己利人小窍门
[打印本页]
作者:
shillan
时间:
2007-12-11 22:13
标题:
WINCC 损己利人小窍门
在一般的小工程中,由于你的老板和甲方老板都是出了名的小气鬼,有时,你不得不做一些损己利人的事!比如关于wincc的tag配置问题。明明有上千点需要交换,但老板却老早就定好了128点的,如果你有异议,狡猾的老板会摸着后脑勺故做傻子的说:“我不懂啊,你怎么不早说!”搞的你查点吐血!
但吐血归吐血,吐完了你不得还要想办法解决吗!看来就只有打包拆包一途了!
1、输入的拆包
建一个32位的变量,把plc中32个bool数据读上来。
在wincc中建一全局脚本,做32个与运算,取出你需要的位来,并赋给相应的内部变量,用32点tag做触发器,如
......
dint 11,22,33...;
aa=getdwordtag(bb);//bb是外部连接tag
11=aa&0x01000000//取低字节的第一位
if(11==0x01000000)
{
cc=1;//cc为内部bool变量
}
else
{
cc=1;
}
......
2、打包输出
建一个32位的变量,负责把上位32点的信号传下去。
如要将a、b、c.....等变量传下去,则事先约定各下传bool变量在32位tag中的位置。
dint bb;
if(a)//加入第一个数据
bb=bb+0x01000000;
else
bb=bb+0x00000000
if(b)//加入第二个数据
bb=bb+0x02000000;
else
bb=bb+0x00000000
if(c)//加入第三个数据
bb=bb+0x04000000;
else
bb=bb+0x00000000
......
setdwordtag(cc,bb);//cc为32点外部变量
作者:
shillan
时间:
2007-12-11 22:14
一段wincc小车运动代码
1、先建一个对象;
2、在属性的几何的位置x或y处建立c动作;
3、代码
{
// wincc:tagname_section_start
// syntax: #define tagnameinaction "dmtagname"
// next tagid : 1
// wincc:tagname_section_end
// wincc:picname_section_start
// syntax: #define picnameinaction "picturename"
// next picid : 1
// wincc:picname_section_end
{
static int x = 0;
static int t = 0;
t += 100;
if ( t < 300 || t > 500 ) x ++;
if ( x > 500 ) {x = 0; t = 0;}
return (x);
}
}
作者:
lionjl
时间:
2007-12-11 22:37
谢谢啊,好帖一定要回的!当然,回帖的质量也会逐步提高的,呵呵
作者:
qq150
时间:
2007-12-12 23:49
谢谢啊,好帖一定要回的!
作者:
荣誉
时间:
2007-12-17 15:18
好铁好帖好帖好帖好帖好帖
作者:
imsoul
时间:
2007-12-26 20:15
牛帖!
牛帖!
牛帖!谢谢楼主
作者:
angelmq
时间:
2008-3-30 20:17
哈哈不错不错,那车我很喜欢~~~我做了个不过不怎么好看。不是跑车~
作者:
aogeabcd
时间:
2009-1-26 10:02
好贴。
作者:
闪烁到永远
时间:
2010-1-21 11:53
好帖
作者:
vks
时间:
2010-7-13 12:40
呵呵,学习了,感谢楼主分享
作者:
泉水边的木槿花
时间:
2010-7-16 01:32
利人利己,一定做利人不利己,考虑做利己不利人,一定不做损人利己,一定不做
作者:
小红手心
时间:
2010-7-16 01:32
利人利己,一定做利人不利己,考虑做利己不利人,一定不做损人利己,一定不做
作者:
220student
时间:
2014-5-6 16:19
太棒了 太好了 真棒
欢迎光临 逐梦论坛 (http://temp2023.zhumeng.org/)
Powered by Discuz! 7.2