首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何用可编程控制器S7和c#来获取和显示图形高频数据点?

如何用可编程控制器S7和c#来获取和显示图形高频数据点?
EN

Stack Overflow用户
提问于 2022-01-25 07:22:58
回答 1查看 90关注 0票数 0
  1. 我的项目必须以高采样率(大约1000个样本/秒)进行监视。我使用S7_communication协议。我没有理想的得到它(1000个样本/秒)。也许我会创建一个计时器1ms来获得每秒一个样本。但是对于2000年的例子,我不知道怎么做.
  2. 实时显示图表.我想向大家展示我从PLC那里学到的一切。并展示给高样本(1000个样本/second)的图形(自动滚动)。

你能给我一些概念来做吗?我使用s7.netlib在myPC和PLC之间进行通信

代码语言:javascript
复制
Plc plc = null;

plc = new Plc(CpuType.S71200, "192.168.0.1", 0, 1);
public initPLC()
{
    try
    {
        plc.Open();
    }
    catch (Exception ex)
    {
        MessageBox.Show(ex.Message);
    }
}


public void setTimer(double value)
{
    aTimer = new System.Timers.Timer(value);
    aTimer.Elapsed += OnTimedEvent;
    aTimer.AutoReset = true;
    aTimer.Enabled = true;
}

private void OnTimedEvent(Object source, ElapsedEventArgs e)
{
    if (plc.IsConnected)
    {
        RefreshValue();
    }
}
 
 
 private void RefreshValue()
{
    ushort value1 = 0;
    ushort value2 = 0;

    bool[] tagArr = { false, false, false, false };

    try
    {
        value1 = (ushort)plc.Read("DB4.DBW0"); //value1
        tagArr[0] = true;
    }
    catch (Exception)
    {
        tagArr[0] = false;
    }
    //func
    try
    {
        value2 = (ushort)plc.Read("DB4.DBW2"); //value2
        tagArr[1] = true;
    }
    catch (Exception)
    {
        tagArr[1] = false;
    }
    try
    {
        bool _bit = (bool)plc.Read(DataType.Input, 0, 0, VarType.Bit, 1);
    }
    catch (Exception)
    {

    }

}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-02-16 13:44:10

让我告诉你,这样的数据率是不可能通过直接阅读您的plc。我认为你能用PLC直接阅读的最好的速度是大约10~20毫秒。对于高速监控数据,您必须需要一个特定的DAQ模块。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70844755

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档