威纶通官方论坛

XY曲线取样问题

[复制链接]
发表于 2011-5-24 14:44:06 | 显示全部楼层 |阅读模式
HMI和PLC相连,做XY曲线,如果要x取样100个点,y取样100个点,在PLC内部用这么多存储区太多了,而且编程上也很麻烦。

有没有办法,hmi从PLC的2个数据区,比如说,vw10,vw12 ,各连续取样100个数据,存入HMI的存储区,然后再xy曲线上显示。这样PLC的程序也会更简洁。
 楼主| 发表于 2011-5-25 10:00:29 | 显示全部楼层
这个问题有人会么,求帮助
发表于 2011-5-26 09:02:27 | 显示全部楼层
这个功能是可以实现的,请下载附件的文件。
XY轨迹.rar (10.47 KB, 下载次数: 1656)
 楼主| 发表于 2011-5-30 08:21:28 | 显示全部楼层
工程师,你好

看了一下范例,这个好像是通过宏指令手动输入X,y的值得吧,实际使用中,这样肯定不行的

触摸屏的最低扫描周期是0.1m,能否就每0.1m。触摸屏从PLC的vw10,vw12读取数据
vw10存入触摸屏的 lw10,12,14,16
vw12存入触摸屏的 lw100,102,104,106
分别存入50个数据,然后在xy曲线图上显示

在触摸屏的功能里还看到有个触发式资料传输,能否用来实现此功能

谢谢
 楼主| 发表于 2011-5-30 08:52:22 | 显示全部楼层
补充一下,用的PLC 是 siemens s7/200 远端地址是 2
发表于 2011-5-30 09:44:13 | 显示全部楼层
程序是使用多状态设定原件改变寄存器的值,宏指令对两个寄存器进行取样,你可以根据程序修改成你需要的地址。
 楼主| 发表于 2011-6-2 15:03:30 | 显示全部楼层
管理员你好,第一次使用威伦的产品还是有诸多不懂,请教下,修改如下是否正确

xy的控制位为vw24,数据位为vw26=500
X的地址为rw0  , Y的地址为 rw1000

使用一个多状态开关来启动宏指令,同时设置vw24为1,开始绘图


macro_command main()
short xy[2],address,control,data_count,update=3   //这里定义一个2位数组,contral和updata的含义是什么呢

GetData(address, "Local HMI", LW, 8000, 1)  //这里是否需要改动?

GetData(xy[0], "SIEMENS S7/200", VW, 20, 1)    //将vw20传送到xy0
GetData(xy[0], "SIEMENS S7/200", VW, 22, 1)    //将vw22传送到xy1

GetData(data_count, "Local HMI", LW, 1, 1)     // 这个是控制HMI里rw地址的增加的么?      

data_count=data_count+1

SetData(xy[0], "Local HMI", RW, address, 1)   //将vw20传送到rw0,rw2....
SetData(xy[1], "Local HMI", RW, address+1000, 1)  //将vw20传送到rw1000,rw1002....

SetData(data_count, "Local HMI", LW, 1, 1)
SetData(update, "Local HMI", LW, 0, 1)
address=address+1
SetData(address, "Local HMI", LW, 8000, 1)


end macro_command


谢谢
 楼主| 发表于 2011-6-6 23:38:27 | 显示全部楼层
求管理员帮助
发表于 2011-6-7 11:56:57 | 显示全部楼层
管理员你好,第一次使用威伦的产品还是有诸多不懂,请教下,修改如下是否正确

xy的控制位为vw24,数据位为vw26=500
X的地址为rw0  , Y的地址为 rw1000

使用一个多状态开关来启动宏指令,同时设置vw24为1,开始绘图


macro_command main()
short xy[2],address,control,data_count,update=3   //这里定义一个2位数组,contral和updata的含义是什么呢   update 的是用来从新生成曲线的,control这个变量没有使用到

GetData(address, "Local HMI", LW, 8000, 1)  //这里是否需要改动?这里不需要修改,是设置数据取下来然后保存地址。

GetData(xy[0], "SIEMENS S7/200", VW, 20, 1)    //将vw20传送到xy0
GetData(xy[0], "SIEMENS S7/200", VW, 22, 1)    //将vw22传送到xy1

GetData(data_count, "Local HMI", LW, 1, 1)     // 这个是控制HMI里rw地址的增加的么?    这个是数据的个数,当前生成曲线总共有多少个点。   

data_count=data_count+1

SetData(xy[0], "Local HMI", RW, address, 1)   //将vw20传送到rw0,rw2....
SetData(xy[1], "Local HMI", RW, address+1000, 1)  //将vw20传送到rw1000,rw1002....

SetData(data_count, "Local HMI", LW, 1, 1)
SetData(update, "Local HMI", LW, 0, 1)
address=address+1
SetData(address, "Local HMI", LW, 8000, 1)


end macro_command

你具体说下你的要求吧,我再给你做好一个程序。
 楼主| 发表于 2011-6-7 13:27:35 | 显示全部楼层
好,多谢工程师了

具体情况是
X轴:vw20 采集PLC一个模拟输出口数据(三角波波形,走一个周期),数据范围 -32000 ~ +32000
Y轴:vw22 采集PLC一个模拟输入口数据,数据范围 -32000 ~ +32000
使用的是SIEMENS S7/200

然后工作的时候,vw20走一个周期,采集一个周期的数据。所以希望 xy的控制信号是由PLC控制,比如M10.0启动,然后开始绘图,好像要做到波形走完一个周期,绘图结束比较困难。可以直接设置采集500个点这样。

不晓得我表述得是否清楚
 楼主| 发表于 2011-6-9 09:07:47 | 显示全部楼层
顶一下,求支持
发表于 2011-6-9 21:35:04 | 显示全部楼层
XY轨迹.rar (10.54 KB, 下载次数: 934)
已经按照要求修改好,请测试是否符合要求。
 楼主| 发表于 2011-6-10 15:05:19 | 显示全部楼层
管理员你好,我修改了下,依然显示有错误,Y轴的值一直显示为0 , 曲线一直在 X轴上。是何原因,rw我修改为了16 signed 。因为范围是-32000~32000

如果设置下上限为-32000~32000 这样理解对不对

004.jpg

这个SB0的作用是什么?

003.jpg

sw4,sw5是控制vw20,22变化的,因为从PLC内部读取我就直接删了。

001.jpg

002.jpg


XY轨迹20.zip (279.15 KB, 下载次数: 948)
 楼主| 发表于 2011-6-13 08:47:50 | 显示全部楼层
顶一下,求工程师支持
 楼主| 发表于 2011-6-14 08:40:45 | 显示全部楼层
问一下管理员 ,rw的数据位数是几位的,vw在PLC中是16位数据,往hmi里面传送,rw0下个地址是rw2还是rw1
发表于 2012-9-17 16:56:44 | 显示全部楼层
确实可以实现那 PLC与触摸屏的通讯是根本
您需要登录后才可以发帖 登录 | 注册

本版积分规则

回复帖子

Archiver|小黑屋|威纶通官网 ( 粤ICP备06054553号 )

GMT+8, 2026-4-1 17:42

Powered by Discuz! X3.4

© 2001-2023 Comsenz Inc.

快速回复 返回顶部 返回列表