那么,我想用二进制外部变量能触发一个用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号吗,不管怎样还是非常感谢你了
但是点击启动按钮后,物料也不可能移动呀
追答在WINCC里建个内部变量“POS”,在原来建好的画面里添加一个正方形(正方形代表物料)和一个输入输出域,将输入输出域对象链接到内部变量“POS”上,正方形对象的位置X随“POS”的值改变而改变。以下为详细步骤:
1、右击画面“正方形”,对象。
2、从快捷菜单中选择“属性”菜单项,打开“对象属性”对话框。
3、选择“属性”选项卡上的“几何”属性。
4、选择右边窗口中的“位置X”,右击此行“动态”列上的灯泡,从快捷菜单中选择“动态对话框”打开“动态值范围”对话框:在“数据类型”列表中选择“直接”单选项。单击“表达式/公式”文本框右边的按钮,从菜单中选择“POS”变量。单击“应用”按钮,关闭“动态值范围”对话框。
5、单击图形编辑器上的运行图标,当在“输入输出域”对象上输入不同值给“POS”变量时,正方形的水平位置也在改变。