最近公司老总不知道怎么想的,要我们自己折腾无线传感,还利用PLC。现在老板的要求就是10个传感器读取到温度,湿度,电量等多个数据(每个数据都有自己的地址位)然后传到一个集中器上,再通过串口把数据传到PLC,重点来了,要通过网线利用modbus RTU协议读取PLC上的数据,是实时数据,然后在显示到窗口的同时,再存入数据库(SQL2008)中。
折腾了大半天,终于顺利的用PLC收到无线传感器传来的数据了,用一个组态王试了下,PLC也能正常把数据通过以太网传输出去。
但我就是不知道怎么用C#编写程序,做出一个能够接收PLC发过来的多个实时数据(500毫秒间隔),在窗口上显示的同时,再存入数据库里。由于以前只用组态软件,C#以前也学过,但通信方面并没有深入涉及。
主要问题就是用MODBUS 通过以太网读取PLC数据再存入数据库。希望大家能给我点思路,能有示例最好。
还有,组态软件老总不让用,再此郁闷下。。

解决方案 »

  1.   

    求解啊。哪怕是点思路也行。modbus具体怎么利用。。
      

  2.   

    看你介绍的比较玄乎,MODBUS啥的不太清楚,但是不外乎串口通讯吧。我做过Omron的HostLink通讯协议,通讯协议格式你需要查询PLC的通讯文档的,而具体的发送接收跟一般的SerialPort一模一样。
      

  3.   

    C#这边,写个Tcp服务端,接受二进制数据,然后解析为ModBus,得到负载数据,完成!其实你们这个方案好浪费钱哦,一个PLC就大几千的了。我们也有类似的方案,在农业自动化上:
    终端带有温湿度传感器和无线模块,由电池驱动,可用三年;
    终端定时把数据发往主控端;
    主控端就是一片很简单的STM32单片机,带有无线模块和以太网模块,主控端就是一个数据中继;
    PC通过以太网接受数据,进行处理。这个方案里面,终端的硬件成本几十块钱,主控端的成本一百多一点。可以用MF做。.Net Micro Framework结构和特性【英文】
    http://www.newlifex.com/showtopic-7.aspx
      

  4.   

    我也觉得好浪费钱啊,不过谁知道老总怎么想的呢。。PLC是库存的,估计老总心血来潮,苦了我了都。
      

  5.   


    SerialPort以前用过,但只是和同事两台电脑连着串口线我发一个他收一个,完了还被他说:“你无聊不无聊?”
    现在都忘得差不多了,以前做的那个是参考网上的某个资料,现在电脑重装了系统,全没了。
    真不知道我毕业怎么就走入工控行业了。。
      

  6.   

    写个Tcp服务端,接受二进制数据,然后解析为ModBus,得到负载数据
    这个具体要怎么折腾呢?因为是实时数据,500毫秒一刷新。
      

  7.   


    你的500ms太慢了!这哪里还叫实时呀你先学习TcpListener类,然后学习ModBus,用C#解析,差不多就可以了