Esempio n. 1
0
        internal void RefreshDisplayPLCData_Except_AddressColumn()        // 그리드뷰 Address Column 뺀, 나머지 새로고침
        {
            while (state > 0)
            {
                UInt16[] vData    = new UInt16[16];
                UInt16[] TempByte = new UInt16[1];

                //vdata[16]에 주소 ~ +16까지 배열값 읽어오기
                vData = PLCManager.Read(iSelectedRegister, iSelectedAddress, 15);   // 16 ==> 100

                //row
                for (int i = 0; i < vData.Length; i++)

                {
                    Grid[0, i + 0].Value = Device_Def.Device + (iSelectedAddress + i).ToString();
                    //column
                    for (int j = 15; j >= 0; j--)
                    {                                                                                      //첫번째줄 처음셀 부터                 //읽어온 배열 내부값 & 쉘의 비트 변환값 == 같으면 1
                        Grid[16 - j, i].Value = (vData[i] & GetBitValue(j)) == GetBitValue(j) ? "1" : "0"; // 16개만 찍음 (D0 ~ D15)


                        if (Grid[16 - j, i].Value.ToString() == ((vData[i] & GetBitValue(j)) == GetBitValue(j) ? "1" : "0"))
                        {
                            if (Grid[16 - j, i].Value.ToString() == "1")      // 비트 데이터 1이면
                            {
                                Grid[16 - j, i].Style.BackColor = Color.Aqua; // 활성화 색
                            }
                            else
                            {
                                Grid[16 - j, i].Style.BackColor = Color.White;  // 비 활성화 색
                            }
                        }
                        //if (m_VirtualPLC.SocketConnect != null)
                        //{
                        //    if (m_VirtualPLC.SocketConnect[i, 1] == 1)
                        //    {
                        //        gridControl_View[i + 1, 16].Style.BackColor = Color.Aqua;
                        //    }
                        //    else
                        //    {
                        //        gridControl_View[i + 1, 16].Style.BackColor = Color.White;
                        //    }
                        //}
                    }
                    // j 바깥쪽 17~21 값 변환
                    //포트 번호 나열

                    Grid[0, 15].Value = "접속정보";
                    Grid[17, i].Value = ((vData[i] & 0xff00) / 256).ToString();                                                  // HIGH
                    Grid[18, i].Value = ((vData[i] & 0x00ff)).ToString();                                                        // LOW
                    Grid[19, i].Value = vData[i].ToString();                                                                     // ALL
                    Grid[20, i].Value = ((char)((vData[i] & 0xff00) / 256)).ToString() + ((char)(vData[i] & 0x00ff)).ToString(); // ASCII
                }

                //서버일때 포트 번호 나열
                for (int i = 0; i < UI_set.Enable_Client; i++)
                {
                    Grid[i + 1, 15].Value = Port + i;

                    Device_Def.ablePorts[i] = Port + i;
                }

                int a = 0;
                while (a < UI_set.Enable_Client)
                {
                }
            }
        }
Esempio n. 2
0
        internal void RefreshDisplayPLCData()        // 그리드뷰 전체 셀 새로고침
        {
            UInt16[] vData    = new UInt16[16];
            UInt16[] TempByte = new UInt16[1];

            for (int i = 0; i < vData.Length; i++)
            {
                TempByte = PLCManager.Read(iSelectedRegister, iSelectedAddress + i, 1);
                ushort a  = TempByte[0];
                byte[] bb = BitConverter.GetBytes(a);
                for (int j = 0; j < bb.Length; j++)
                {
                    BitArray b = new BitArray(new byte[] { bb[j] });
                    //BitArrayReverse(b);
                    bb[j] = BitConvertToByte(b);
                }
                //Array.Reverse(b);
                TempByte[0] = BitConverter.ToUInt16(bb, 0);
                Array.Copy(TempByte, 0, vData, i, 1);
            }



            vData = PLCManager.Read(iSelectedRegister, iSelectedAddress, 15);   // 16 ==> 100

            for (int i = 0; i < vData.Length; i++)
            {
                Grid[0, i + 0].Value = Device_Def.Device + (iSelectedAddress + i).ToString(); // Address Column 관리
                for (int j = 15; j >= 0; j--)
                {
                    Grid[16 - j, i].Value = (vData[i] & GetBitValue(j)) == GetBitValue(j) ? "1" : "0";      // 16개만 찍음 (D0 ~ D15)

                    if (Grid[16 - j, i].Value.ToString() == ((vData[i] & GetBitValue(j)) == GetBitValue(j) ? "1" : "0"))
                    {
                        if (Grid[16 - j, i].Value.ToString() == "1")      // 비트 데이터 1이면
                        {
                            Grid[16 - j, i].Style.BackColor = Color.Aqua; // 활성화 색
                        }
                        else
                        {
                            Grid[16 - j, i].Style.BackColor = Color.White;  // 비 활성화 색
                        }
                    }


                    //if (m_VirtualPLC.SocketConnect != null)
                    //{
                    //    if (m_VirtualPLC.SocketConnect[i, 1] == 1)
                    //    {
                    //        gridControl_View[i + 1, 16].Style.BackColor = Color.Aqua;
                    //    }
                    //    else
                    //    {
                    //        gridControl_View[i + 1, 16].Style.BackColor = Color.White;
                    //    }
                    //}
                }

                Grid[17, i].Value = ((vData[i] & 0xff00) / 256).ToString();                                                  // HIGH
                Grid[18, i].Value = ((vData[i] & 0x00ff)).ToString();                                                        // LOW
                Grid[19, i].Value = vData[i].ToString();                                                                     // ALL
                Grid[20, i].Value = ((char)((vData[i] & 0xff00) / 256)).ToString() + ((char)(vData[i] & 0x00ff)).ToString(); // ASCII
            }
        }