回复:1ms的时间间隔取PLC里的数据,可能吗?!

crushor

  • 帖子

    547
  • 精华

    2
  • 被关注

    2

论坛等级:游侠

注册时间:2004-03-30

普通 普通 如何晋级?

发布于 2004-04-09 19:07:32

0楼

哈哈,不好意思,其实那天本来打的挺多,发的时候发不上去,就丢了,很不爽,再说这也只是想法,并不一定可以用的,无非是说出来大家交流一下。
1。假如没有WINCC,而只是用编程器STEP7的话,这时其实就是个串口通讯过程,而这个过程当然会很复杂,但是其实就我们在最后使用的时候,用不了这么多内容,我们只需要读写变量而已。所以如果知道如何从串口发出读写指令的话(其实就是命令格式),可以直接通信的。再回到问题的开始,由于专用设备5611应该不容易监视,但是WINCC是使用驱动DLL来进行通讯的,而驱动DLL按我的理解,速度应该会比上层的WINCC数据处理快上很多,否则的话,如果挂的设备多,怎么保证500MS的速度?如果可以直接使用DLL,当然比WINCC自己的刷新要快的多啊(也许WINCC的刷新速度其实和这种方式是一样的,但没办法按这么快的速度进行归档处理)。比如S7-SUITE的DLL,提供了多种驱动连接方式,但是这个DLL才只有200多K,我想它应该是调用5611的功能来实现。如果知道DLL里的函数以及调用方法,我们当然也可以自己进行通信。

注意,这里面也许会牵涉到法律问题。而且,拟向过程应该是很困难的。所以我的看法是,理论上可行。而且,这个想法并不是因为这个问题才产生的。(不要打我~~~~~~~~~~~~~~~~)Anyting is possible.

2。我是这么想的,假设我们只读一个变量,可以在PLC里面建15个周期的缓冲区,在WINCC里面建15个对应的外部变量,在读上来之后第一个变量对应第一个周期,依次类推。但问题是这时就是WINCC无法对多个变量画到同一个趋势图上(至少我不知道,谁知道了告诉我),我们可以看到数值,但是趋势归档什么的都没办法做。假设下面的周期是100MS,那么按最短的归档周期是500MS,我们可以把5个连续周期的值的平均值作为内部变量进行处理。或者说,我们干脆把这个平均过程也放到PLC来做。
WINCC的变量刷新速度不知道有多快,但是如果跟不上(我想肯定是跟不上的吧),想要尽量不丢数据,我能想到的方法就是用缓冲区了。
我想这个缓冲区应当建的在2次WINCC读取时候会有重叠,这应当在每个数据之前插入一个全局的周期号来进行标识。32位,100毫秒的话,可以连续放十来年,应该够了,然后按周期号进行处理。。。
啊,我好象就要把自己都绕进去了,算了,不想了,呵呵。
其实说实话,这个想法也是理论上可行,这仅适用于数据变化较慢的情况(变化较慢完全可以就500MS采样一下就好了,何必这么麻烦?)。因为平均数掩盖了特性,想要看的东西都看不到了,还有什么意义啊?
3。按你的描述来看,大概是希望获得往复过程中油缸的压力变化。但是你想,假如100MS一个往复,中间压力不断变化,PLC程序就算很简练,30MS,在一个周期中可以读三个数据,恐怕不足以支持你从中得出什么比较有用的东西吧?而且这种情况下在放进WINCC处理一下,还能从中看出什么啊。
如果是这种情况,我觉得用PLC估计是实现不了了。
4。如果要求没有高到这种地步,但是也不希望平均处理,我觉得应该不断的把WINCC读出的变量再写出到自己的程序中处理。为了防止过于缓慢,缓冲区应该建的更大一些。这等于是走了一条弯路,所以会有想法一。
5。C脚本的速度本来应该快的,但是它是由GSRIPT。EXE处理的,而且GETTAG,SETTAG又奇慢无比。又没办法直接读写数据。



评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC WinCC / Panel

共有32892条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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