Exemplo n.º 1
0
 public void Dispose()
 {
     if (_modbus != null)
     {
         StopTakingData();
         _modbus.Close();
         _modbus = null;
     }
 }
Exemplo n.º 2
0
        public void StartModbusCommunication()
        {
            InStartupMode = true;
            if (_modbus == null)
            {
                _modbus = new WSMBSControl();
            }

            if (ModBusIsOn)
            {
                StopTakingData();

                return;
            }

            String[] comPortsToCheck = { "COM1", "COM2", "COM3", "COM4", "COM5", "COM6", "COM7", "COM8", "COM9", "COM10" };


            foreach (string portName in comPortsToCheck)
            {
                _modbus.Mode            = Mode.RTU;
                _modbus.PortName        = portName;
                _modbus.BaudRate        = 19200;
                _modbus.StopBits        = 1;
                _modbus.Parity          = Parity.None;
                _modbus.ResponseTimeout = 950;
                _modbus.LicenseKey("0AA1-91A6-7BE9-08B7-1A9A-B68B");

                Node1ModResult = _modbus.Open();


                if (Node1ModResult != Result.SUCCESS)
                {
                    ModbusError = string.Format("Connecting to radio network {0} - {1}", portName,
                                                _modbus.GetLastErrorString());
                    ButtonText    = "Error";
                    InStartupMode = false;
                    ModBusIsOn    = false;
                }
                else
                {
                    //clear the modbus error incase there was one
                    ModbusError   = "Radio Network Connected...";
                    ModBusIsOn    = true;
                    InStartupMode = true;
                    _bw.RunWorkerAsync();
                    return;
                }
            }
        }
Exemplo n.º 3
0
        /// <summary>
        /// 端口连接函数
        /// </summary>
        /// <param name="sName"></param>
        /// <param name="nPort"></param>
        /// <returns></returns>
        public bool MB_Connect(string sName, int nPort)
        {
            if (m_nProcotol == 2)
            {
                tcp_svr = new WSMBTControl();
                tcp_svr.LicenseKey("2222222222222222222222222AAF2");
                return(WSMBT.Result.SUCCESS == tcp_svr.Connect(sName, nPort));
            }

            ser_svr = new WSMBSControl();
            ser_svr.LicenseKey("2222222222222222222222222F3AA");
            ser_svr.PortName = sName;
            ser_svr.Parity   = Parity.None;
            ser_svr.DataBits = 8;
            ser_svr.StopBits = 1;
            ser_svr.BaudRate = nPort;
            bTaskStatus      = false;
            return(WSMBS.Result.SUCCESS == ser_svr.Open());
        }