WINCC 7.5 图形根据一个变量分段移动(全局变量)

已锁定

Kingdom.Yao

  • 帖子

    51
  • 精华

    0
  • 被关注

    0

论坛等级:游侠

注册时间:2022-09-15

钻石 钻石 如何晋级?

WINCC 7.5 图形根据一个变量分段移动(全局变量)

1069

4

2025-11-18 10:46:21

展开查看
引用自找答案,问题ID:339796

现在我从PLC读取了一个DINT的值,0-50000的范围,到了wincc7.5,比如名字叫实际位置。然后我在画面上需要体现相对位置,但是实际移动的不是单一的X轴移动,而是分段的,比如在实际位置在0-10000时,图形是沿Y轴从下往上移动,当实际位置10000-20000时,图形从刚才停止的点沿X轴往右运动,就是这样,图形的运动轨迹是根据实际位置分段的,如何做这个图形动画,或者有相关的例子,教程都行,感谢大神,新手多包涵!

提问者:Kingdom.Yao


zhangli0 回答道:

wincc定义xpos和ypos的内部变量,然后全局脚本中判断实际位置的变量值,
假设实际位置小于1000,y方向从20000移动到10000(像素点)
,则(ypos-20000)/(10000-20000)=(实际位置-0)/(1000-0),ypos=实际位置/1000*(-10000)*20000
否则ypos=20000
假设实际位置∈[1000,2000],xpos在[100,5000],则
(xpos-100)/(5000-100)=(实际位置-1000)/(2000-1000),xpos=(实际位置-1000)/(2000-1000)*4900+100
否则xpos=100
然后图形的坐标x连接变量xpos,坐标y连接变量ypos


补充:你不试试我说的的?图形的x,y坐标连接xpos和ypos,全局脚本计算xpos和pos的值.

还有2人在找答案上回答了该问题,查看全部>
根据”zhangli0 ”大佬回复,我尝试做了一下,如下:
#include "apdefap.h"

int gscAction( void )
{
if (GetTagDWord("实际位置")&"实际位置">0&"实际位置"<1000) //假设实际位置小于1000,y方向从20000移动到10000(像素点)
"Ypos1A" == "实际位置"/1000*(-10000)*20000; //Ypos==实际位置/1000*(-10000)*20000
else
"Ypos1A"==20000; //Ypos=20000

if (GetTagDWord("实际位置")&"实际位置">1000&"实际位置"<2000) //假设实际位置∈[1000,2000],xpos在[100,5000],则
"Xpos1A"==("实际位置"-1000)/(2000-1000)*4900+100;//xpos=(实际位置-1000)/(2000-1000)*4900+100
else
"Xpos1A"==100; //否则xpos=100

return 0;
}
编译后:
Compiling...
line 6 : error (0054) : operands of *, / must be arithmetic
ine 6:error (0054):operands of *,
must be arithmetic
ine 6: error (0054):operands of
must be arithmetic
line 11: error (0054):operands of
must be arithmetic
line 11: error (0054); operands of -,
must be arithmetic
该动作没有包含解释代码。


该如何修改啊,菜鸟提问,请多包涵!
WINCC 7.5 图形根据一个变量分段移动(全局变量) 已锁定
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC WinCC / Panel

共有33106条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

快扫描右侧二维码晒一晒吧!

再发帖或跟帖交流2条,就能晋升VIP啦!开启更多专属权限!

  • 分享

  • 只看
    楼主

top
X 图片
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。