public override int ReadWordValue(ComLink.WordArea wa, int addrWord, ref int value) { string str = string.Empty; int ret = this.ReadWordValue(wa, addrWord, ref str); if (ret == 0) { value = (int)Convert.ToInt16(str, 16); } return(ret); }
public override int ReadDoubleWord(ComLink.WordArea wa, int addrWord, ref int rtnvalue) { string strvalue = string.Empty; int ret = this.ReadMultiWordValue(wa, addrWord, 2, ref strvalue); if (ret == 0) { StringBuilder sb = new StringBuilder(strvalue.Substring(4, 4)); sb.Append(strvalue.Substring(0, 4)); rtnvalue = Convert.ToInt32(sb.ToString(), 16); } return(ret); }
public override int SetWordValue(ComLink.WordArea wa, int addrWord, int value) { string strValue = Convert.ToString(value, 16); if (strValue.Length > 4) { strValue = strValue.Substring(strValue.Length - 4, 4); } else if (strValue.Length < 4) { string strTemp = "0000"; strTemp = strTemp.Substring(0, 4 - strValue.Length); strValue = strTemp + strValue; } return(this.SetWordValue(wa, addrWord, strValue)); }
public override int SetDoubleWordValue(ComLink.WordArea wa, int addrWord, int value) { string strValue = Convert.ToString(value, 16); StringBuilder sb = new StringBuilder(); string str = "0000"; if (strValue.Length <= 4) { sb.Append(str.Substring(0, 4 - strValue.Length)); sb.Append(strValue); sb.Append(str); } else { sb.Append(strValue.Substring(strValue.Length - 4, 4)); sb.Append(str.Substring(0, 8 - strValue.Length)); sb.Append(strValue.Substring(0, strValue.Length - 4)); } return(this.SetMultiWordValue(wa, addrWord, 2, sb.ToString())); }
public abstract int ReadWordValue(ComLink.WordArea wa, int addrWord, ref int value);
public abstract int SetDoubleWordValue(ComLink.WordArea wa, int addrWord, int value);
public abstract int SetWordValue(ComLink.WordArea wa, int addrWord, string strValue);
public abstract int ReadMultiWordValue(ComLink.WordArea wa, int addrWord, int length, ref string strValue);
public abstract int SetMultiWordValue(ComLink.WordArea wa, int addrWord, int length, string strValue);
public abstract int ReadDoubleWord(ComLink.WordArea wa, int addrWord, ref int value);
public override int ReadMultiWordValue(ComLink.WordArea wa, int addrWord, int length, ref string strValue) { int result; if (wa >= (ComLink.WordArea) 10) { result = 1; } else if (length > 100) { result = 1; } else { string strMemory; switch (wa) { case ComLink.WordArea.CIO: strMemory = "B0"; break; case ComLink.WordArea.WR: strMemory = "B1"; break; case ComLink.WordArea.HR: strMemory = "B2"; break; case ComLink.WordArea.AR: strMemory = "B3"; break; case ComLink.WordArea.TM: case ComLink.WordArea.CNT: strMemory = "89"; break; case ComLink.WordArea.DM: strMemory = "82"; break; default: result = 1; return(result); } StringBuilder strCommand = new StringBuilder("@"); strCommand.Append(this._strUnitNo); strCommand.Append("FA00000000001"); strCommand.Append("01"); strCommand.Append(strMemory); string strWord = Convert.ToString(addrWord, 16); if (strWord.Length < 4) { string strTemp = "0000"; strTemp = strTemp.Substring(0, 4 - strWord.Length); strWord = strTemp + strWord; } strCommand.Append(strWord); strCommand.Append("00"); string strlength = Convert.ToString(length, 16); if (strlength.Length < 4) { string strTemp = "0000"; strTemp = strTemp.Substring(0, 4 - strlength.Length); strlength = strTemp + strlength; } strCommand.Append(strlength); string strFcs = this.GetFcs(strCommand.ToString()); strCommand.Append(strFcs); strCommand.Append("*"); strCommand.Append('\r'); string strRead = null; try { lock (this._port) { this._port.Write(strCommand.ToString()); strRead = this._port.ReadTo(this._strReadTo); } } catch (Exception ex) { throw new Exception(ex.Message); } if (strRead.Length > 28 && strRead.Substring(19, 4).Equals("0000")) { strValue = strRead.Substring(23, 4 * length); result = 0; } else { result = 1; } } return(result); }
public override int SetWordValue(ComLink.WordArea wa, int addrWord, string strValue) { int result; if (wa >= (ComLink.WordArea) 10) { result = 1; } else { string strMemory = null; switch (wa) { case ComLink.WordArea.CIO: strMemory = "B0"; break; case ComLink.WordArea.WR: strMemory = "B1"; break; case ComLink.WordArea.HR: strMemory = "B2"; break; case ComLink.WordArea.AR: strMemory = "B3"; break; case ComLink.WordArea.TM: case ComLink.WordArea.CNT: strMemory = "89"; break; case ComLink.WordArea.DM: strMemory = "82"; break; } StringBuilder strCommand = new StringBuilder("@"); strCommand.Append(this._strUnitNo); strCommand.Append("FA10000000001"); strCommand.Append("02"); strCommand.Append(strMemory); string strWord = Convert.ToString(addrWord, 16); if (strWord.Length < 4) { string strTemp = "0000"; strTemp = strTemp.Substring(0, 4 - strWord.Length); strWord = strTemp + strWord; } strCommand.Append(strWord); strCommand.Append("000001"); if (strValue.Length > 4) { strValue = strValue.Substring(strValue.Length - 4, 4); } else if (strValue.Length < 4) { string strTemp = "0000"; strTemp = strTemp.Substring(0, 4 - strValue.Length); strValue = strTemp + strValue; } strCommand.Append(strValue); string strFcs = this.GetFcs(strCommand.ToString()); strCommand.Append(strFcs); strCommand.Append("*"); strCommand.Append('\r'); string strRead = null; try { lock (this._port) { DateTime dt = DateTime.Now; this._port.Write(strCommand.ToString()); double elapse = (DateTime.Now - dt).TotalMilliseconds; dt = DateTime.Now; strRead = this._port.ReadTo(this._strReadTo); elapse = (DateTime.Now - dt).TotalMilliseconds; } } catch (Exception ex) { throw new Exception(ex.Message); } if (strRead.Length > 24 && strRead.Substring(19, 4).Equals("0000")) { result = 0; } else { result = 1; } } return(result); }