首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Modbus TCP从服务器。数据传输

Modbus TCP从服务器。数据传输
EN

Stack Overflow用户
提问于 2014-03-05 15:21:23
回答 1查看 3.5K关注 0票数 1

我开发的c#窗口从ModbusTCP从应用程序提供数据从dataGridView。我创建了从dataGridView读取数据并开始侦听的方法。我需要在当前监听中刷新数据。

我的方法:

代码语言:javascript
复制
void Button1Click(object sender, EventArgs e)
    {
         IPAddress address = IPAddress.Parse(tbIP.Text);
         int port = Convert.ToInt32(tbPort.Text);
         slaveTcpListener = new TcpListener(address, port);
         slave = ModbusTcpSlave.CreateTcp(1, slaveTcpListener);
         DataStore data = new DataStore();
           for (int i=0; i<dgV.Rows.Count-1; i++)
            { 
            slave.DataStore.InputRegisters[Convert.ToInt32(dgV[0,i].Value)] = (ushort)Convert.ToUInt16(dgV[1,i].Value);
            } 

           slave.Listen();} 

我需要在DataGridView中刷新数据。我怎么能做到呢?因此,如果我更改表中的数据并再次单击按钮,则会得到一个错误。谢谢你的帮助

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-03-07 10:44:45

您可以使用timer对象(更多信息这里)。例如,您可以启动定时器,按下按钮,然后计时器可以读取数据并更新网格视图。

例如,您可以执行以下步骤:

  1. 将计时器对象从窗体上的工具箱中拖动(它应该位于“所有Windows窗体”文件夹中)。Visual应该在designer窗口的下部创建一个名为timer1的对象。
  2. 双击timer1。Visual为您的计时器的单击事件创建一个处理程序(应该称为timer1_Tick())。定时器将定期运行您在timer1_Tick()事件处理程序中放入的代码。
  3. 复制您在timer1_Tick()中为按钮编写的代码 私有void timer1_Tick(对象发送方,EventArgs e) { IPAddress地址= IPAddress.Parse(tbIP.Text);int端口= Convert.ToInt32(tbPort.Text);slaveTcpListener =新TcpListener(地址、端口);tbIP.Text= ModbusTcpSlave.CreateTcp(1,slaveTcpListener);DataStore data =新DataStore();for (int i=0;i
  4. 最后,您必须配置并启动您的计时器,例如使用一个按钮: void Button1Click(对象发送方,EventArgs e) { timer1.Interval = 10000;//计时器滴答每10,000 10=10秒计时器1. every = true;timer1.Start()}

现在,如果您单击Button1,您的计时器将启动,并应从Modbus读取数据,并每10秒更新一次GridView

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

https://stackoverflow.com/questions/22201850

复制
相关文章

相似问题

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