wincc c脚本中内部函数能调用外部变量吗

能举个例子吗

当然可以。比方说在界面上点一个按钮用于启动电机,那么在这个按钮的“事件”-“鼠标左键按下”这个动作中,点鼠标右键的“c动作”,会弹出c动作编辑器。写入以下语句“SetTagBit("你的外部变量名",1);”即可将对应的变量赋值为1,也就是将PLC的一个数字量输出点置一,对于电机而言马上就可以得电运行。追问

那么,我想用二进制外部变量能触发一个用c脚本编好的让物料移动的画面吗?我现在用的按钮是用内部函数调用内部变量实现让物料移动的

追答

可以的,就是在物料移动的c脚本中最前面加一个判断语句,如果外部变量为1,则运行物料移动的这一段程序,否则直接退出。

追问

判断语句怎么写呀,能给我写一段编好的例子吗,谢谢。我会给你加悬赏分的,

追答

你用的是哪个版本的wincc?我给你一个做过的wincc工程文件的,只是需要确定你的wincc版本

追问

wincc 6.0,那就麻烦你了

追答

wincc6的软件我很久不用了,也记不清以前那个项目中有这个东西了。简单给你说一下吧。
1~3、参考zs123zs1朋友的步骤。
4、选择右边窗口中的“位置Y”,右击此行“动态”列上的灯泡,从快捷菜单中选择“c动作”,然后在弹出的c编辑框中键入以下语句:
long _main(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName)
{
long y=GetPropWord(lpszPictureName,lpszObjectName,lpszPropertyName);
return GetTagBit("NewTag")? y+=30, y%=200: y;
}
说明:第一句,y用来其中记录当前对象(正方形或物料)的纵坐标。
第二句,判断NewTag这个变量是否为1,将来你需要用你自己的变量名替换;如果为1,则使当前对象的纵坐标加30,也就是屏幕上的对象下移30像素,并保证y在0~200 之间;如果为0,则当前对象纵坐标不变。

追问

还要麻烦你多指教一下,就是我点击启动按钮后实现了物料移动,但是我想让物料停下来,就是点击停止按钮后,让物料停在初始位置,或者正移动在的位置处,之后再点击启动按钮后,又能恢复移动,应该怎样编写呀

追答

我上次答复的那一句脚本就会让物料停留在当前位置,再次点击后又能移动的。

追问

我在step7里用梯形图编的是启停加自保电路,就实现不了,也就是再次点击启动按钮后物料就不能移动了,我就是想请教,这种情况应怎样编写呀

追答

你的电机应该有运行状态的反馈点吧。一般情况下,如果电机的接触器吸合,则接触器的辅助触点中必有一个常开点闭合,然后这个常开点上的24V电压信号就反馈到你的PLC了,这里设为i0.0.在wincc中添加这个i0.0的PLC输入点,对应的变量命名为“motor1_turning”.把motor1_turning放到我前面给你的语句中,就是改称为GetTagBit("motor1_turning")? y+=30, y%=200: y;这样就可以了。

追问

谢谢,我还想请教一下,假如我在梯形图上加一个延时定时器,也就是接通十秒以后触发该变量,c脚本是否还用改呢

追答

不需要了

追问

当点击启动按钮后,物料一开始在画面上不显示,经过延时十秒以后才显示是在画面上,并开始移动而且连续移动到x和y定义好的位置,当点击停止按钮后又能复位或者停在该位置,我将怎样实现呢,顺便问一下能留给我你的qq号吗,不管怎样还是非常感谢你了

温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-12-29
1、实现一个物料移动的任务如果在WINCC用C脚本编程,会影响画面运行速度,所以一般都在STEP7里编程:在符号表里定义启动按钮“START”I0.0、停止按钮“STOP”I0.1和输出线圈Q4.0,在OB1里建一个程序,I0.0的常开触点串接I0.1的常闭触点串接线圈Q4.0,在I0.0两端并联Q4.0的常开触点,在硬件界面组态好相应DI和DO,下装到CPU内存卡里。
2、在WINCC里创建和STEP通讯连接好的变量:启动按钮“START”、停止按钮“STOP”和输出线圈Q4.0。再一个图形画面,在画面窗口编辑:启动按钮“START”、停止按钮“STOP”、两个中间有一段距离的正方形。启动按钮“START”用鼠标右击属性/事件/鼠标/“按左键”行,“动作”列,右击白色闪电图标,弹出快捷菜单,在“源”框中选择“常数”后添“1”,在“目标”框打开“变量选择”对话框,选择变量“START”,单击确定。同理组态“STOP”。在“源”框中选择 “常数”后添“0”。追问

但是点击启动按钮后,物料也不可能移动呀

追答

在WINCC里建个内部变量“POS”,在原来建好的画面里添加一个正方形(正方形代表物料)和一个输入输出域,将输入输出域对象链接到内部变量“POS”上,正方形对象的位置X随“POS”的值改变而改变。以下为详细步骤:
1、右击画面“正方形”,对象。
2、从快捷菜单中选择“属性”菜单项,打开“对象属性”对话框。
3、选择“属性”选项卡上的“几何”属性。
4、选择右边窗口中的“位置X”,右击此行“动态”列上的灯泡,从快捷菜单中选择“动态对话框”打开“动态值范围”对话框:在“数据类型”列表中选择“直接”单选项。单击“表达式/公式”文本框右边的按钮,从菜单中选择“POS”变量。单击“应用”按钮,关闭“动态值范围”对话框。
5、单击图形编辑器上的运行图标,当在“输入输出域”对象上输入不同值给“POS”变量时,正方形的水平位置也在改变。

相似回答