-
Bit Read/Write 예제업무용 소스 예제 2021. 8. 21. 15:14728x90반응형728x90
MX Comp Bit Read/Write 예제 첨부.
사용 시 수정 필요.
public string ReadBit(int idx, string address, int size, out string returnCode) { int addressNum = 0; int retCode = -1; string addressList = ""; string returnValue = ""; string addresslog = ""; string addressKind = ""; short[] value = new short[size]; returnCode = "-1"; try { addressKind = address.Trim().Substring(0, 1).ToUpper(); addresslog = addressKind + address.Trim().Substring(1).ToUpper().PadLeft(4, '0'); switch (addressKind) { case "B": case "X": case "Y": addressNum = Convert.ToInt32(address.Substring(1, address.Length - 1), 16); for (int Loop = 0; Loop < size; Loop++) { addressList += addressKind + Convert.ToString(Convert.ToInt64(addressNum + Loop), 16).ToUpper() + "\n"; } break; case "M": case "L": addressNum = Convert.ToInt32(address.Substring(1, address.Length - 1)); for (int Loop = 0; Loop < size; Loop++) { addressList += addressKind + (addressNum + Loop).ToString() + "\n"; } break; } retCode = _MXComm.ReadDeviceRandom2(addressList, size, out value[0]); returnCode = Convert.ToString(retCode, 16); for (int i = 0; i < size; i++) { returnValue += value[i]; } } catch (Exception ex) { lock (_lockEvent) { _event.Enqueue("Exception" + "," + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:fff") + "," + ex.ToString().Replace(",", "-") + ": Address: " + address + " : size: " + size); } } return returnValue; } public void WriteBit(int idx, string address, string value, out string returnCode) { int size = 0; int addressNum = 0; int retCode = -1; short[] nValue; string addressList = ""; string addresslog = ""; string addressKind = ""; returnCode = "-1"; try { addressKind = address.Trim().Substring(0, 1).ToUpper(); addresslog = addressKind + address.Trim().Substring(1).ToUpper().PadLeft(4, '0'); size = value.Trim().Length; nValue = new short[size]; switch (addressKind) { case "B": case "X": case "Y": addressNum = Convert.ToInt32(address.Substring(1, address.Length - 1), 16); for (int Loop = 0; Loop < size; Loop++) { addressList += addressKind + Convert.ToString(Convert.ToInt64(addressNum + Loop), 16).ToUpper() + "\n"; } break; case "M": case "L": addressNum = Convert.ToInt32(address.Substring(1, address.Length - 1)); for (int Loop = 0; Loop < size; Loop++) { addressList += addressKind + (addressNum + Loop).ToString() + "\n"; } break; } for (int i = 0; i < size; i++) { nValue[i] = (short)Convert.ToInt32(value.Substring(i, 1)); } retCode = _MXComm.WriteDeviceRandom2(addressList, size, ref nValue[0]); returnCode = Convert.ToString(retCode, 16); } catch (Exception ex) { lock (_lockEvent) { _event.Enqueue("Exception" + "," + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:fff") + "," + ex.ToString().Replace(",", "-") + ": Address: " + address + " : value: " + value); } } }
728x90반응형'업무용 소스 예제' 카테고리의 다른 글
레지스트리 관리기능 클래스 예제 코드 (1) 2021.08.21 이미지 화일명으로 이미지 객체를 안전하게 생성후 리턴 예제 (0) 2021.08.21 avicap32.dll을 이용한 C# 영상 제어 예제 (0) 2021.08.21 Step만큼 Address를 증가 시키는 기능 예제 (0) 2021.08.21 Word Read/Write 예제 (1) 2021.08.21