コード例 #1
0
        public bool Homing(string hostIp, int port)
        {
            Socket           s = ModbusSocket.GetConnection(hostIp, port);
            ModesOfOperation modesOfOperation = new ModesOfOperation();

            modesOfOperation.Write(s, ModesOfOperation.ModesEnum.Homing);
            while (modesOfOperation.ReadDisplay(s) != ModesOfOperation.ModesEnum.Homing)
            {
                Thread.Sleep(100);
            }
            ControlWord controlWord = new ControlWord();

            // Byte 19: 31
            controlWord.Bit00 = true; // 1
            controlWord.Bit01 = true; // 2
            controlWord.Bit02 = true; // 4
            controlWord.Bit03 = true; // 8
            controlWord.Bit04 = true; // 16
            controlWord.Write(s);

            StatusWord statusWord = new StatusWord();

            while (!(statusWord.Bit00 && statusWord.Bit01 && statusWord.Bit02 && statusWord.Bit05 && // 39
                     statusWord.Bit09 && statusWord.Bit10 && statusWord.Bit12)) // 22
            {
                statusWord.Read(s);
                Thread.Sleep(100);
            }
            return(true);
        }
コード例 #2
0
        private void PrintStatusWord(Socket s)
        {
            StatusWord sw = new StatusWord();

            sw.Read(s);
            var bitArray19 = new BitArray(new bool[8] {
                sw.Bit00, sw.Bit01, sw.Bit02, sw.Bit03, sw.Bit04, sw.Bit05, sw.Bit06, sw.Bit07
            });
            var bitArray20 = new BitArray(new bool[8] {
                sw.Bit08, sw.Bit09, sw.Bit10, sw.Bit11, sw.Bit12, sw.Bit13, sw.Bit14, sw.Bit15
            });

            byte[] byte19 = new byte[1];
            bitArray19.CopyTo(byte19, 0);

            byte[] byte20 = new byte[1];
            bitArray20.CopyTo(byte20, 0);
            Debug.WriteLine("");
            Debug.WriteLine("StatusWord");
            Debug.WriteLine($"Byte 19: {byte19[0]}");
            Debug.WriteLine($"0: {sw.Bit00}, 1: {sw.Bit01}, 2: {sw.Bit02}, 3: {sw.Bit03}, 4: {sw.Bit04}, 5: {sw.Bit05}, 6: {sw.Bit06}, 7: {sw.Bit07}");
            Debug.WriteLine($"Byte 20: {byte20[0]}");
            Debug.WriteLine($"8: {sw.Bit08}, 9: {sw.Bit09}, 10: {sw.Bit10}, 11: {sw.Bit11}, 12: {sw.Bit12}, 13: {sw.Bit13}, 14: {sw.Bit14}, 15: {sw.Bit15}");
            Debug.WriteLine("");
        }
コード例 #3
0
        public StatusWord GetStatusWord(string hostIp, int port)
        {
            Socket     s          = ModbusSocket.GetConnection(hostIp, port);
            StatusWord statusWord = new StatusWord();

            statusWord.Read(s);
            return(statusWord);
        }
コード例 #4
0
ファイル: InitController.cs プロジェクト: SimonOVT/DryveD1API
        private void ShutDown(Socket s)
        {
            ControlWord controlWord = new ControlWord();

            // Byte 19: 6
            controlWord.Bit01 = true; // 2
            controlWord.Bit02 = true; // 4
            controlWord.Write(s);

            StatusWord statusWord = new StatusWord();

            while (!(statusWord.Bit00 && statusWord.Bit05 && // 33
                     statusWord.Bit09)) // 2
            {
                statusWord.Read(s);
                Thread.Sleep(100);
            }
        }
コード例 #5
0
ファイル: InitController.cs プロジェクト: SimonOVT/DryveD1API
        private void EnableOperation(Socket s)
        {
            ControlWord controlWord = new ControlWord();

            // Byte 19: 15
            controlWord.Bit00 = true; // 1
            controlWord.Bit01 = true; // 2
            controlWord.Bit02 = true; // 4
            controlWord.Bit03 = true; // 8
            controlWord.Write(s);

            StatusWord statusWord = new StatusWord();

            while (!(statusWord.Bit00 && statusWord.Bit01 && statusWord.Bit02 && statusWord.Bit05 && // 39
                     statusWord.Bit09)) // 2
            {
                statusWord.Read(s);
                Thread.Sleep(100);
            }
        }