Ads操作
1.Ads连接
/// <summary> /// 摘要:打开ADS连接,无参数 /// </summary> /// <returns>返回是否成功连接结果bool</returns> public bool ADSConn() { try { //连接ADS adsClient.Connect(AMSAdress, IPSet); } catch { return false; } //定义临时变量 bool tempbool = false; //返回结果 IsConnected = AdsReadBool("MAIN_CTRL.machine_opened", ref tempbool); return IsConnected; //是否读取变量成功 }
2.Ads读取数据
/// <summary> /// 读PLC数据AdsReadBool /// </summary> /// <param name="varname">varname:PLC变量名</param> /// <param name="getresult">getresult:读取结果</param> /// <returns>结果bool</returns> public bool AdsReadBool(string varname, ref bool getresult) { if (!IsConnected) return false; AdsStream istream = new AdsStream(1); BinaryReader bBinRead = new BinaryReader(istream); try { int hvar1 = adsClient.CreateVariableHandle(varname); adsClient.Read(hvar1, istream); istream.Position = 0; getresult = bBinRead.ReadBoolean(); } catch { //IsConnected = false; return false; } finally { istream.Dispose(); bBinRead.Dispose(); } return true; } /// <summary> /// 摘要:读PLC数据AdsReadInt16 /// </summary> /// <param name="varname">varname:PLC变量名</param> /// <param name="getresult"> getresult:读取结果</param> /// <returns>结果bool</returns> public bool AdsReadInt16(string varname, ref Int16 getresult) { if (!IsConnected) return false; AdsStream istream = new AdsStream(2); BinaryReader bBinRead = new BinaryReader(istream); try { int hvar1 = adsClient.CreateVariableHandle(varname); adsClient.Read(hvar1, istream); istream.Position = 0; getresult = bBinRead.ReadInt16(); } catch { //IsConnected = false; return false; } finally { istream.Dispose(); bBinRead.Dispose(); } return true; } /// <summary> /// 摘要:读PLC数据 /// </summary> /// <param name="varname">varname:PLC变量名</param> /// <param name="getresult">getresult:读取结果</param> /// <returns>结果bool</returns> public bool AdsReadSingle(string varname, ref Single getresult) { if (!IsConnected) return false; AdsStream istream = new AdsStream(4); BinaryReader bBinRead = new BinaryReader(istream); try { int hvar1 = adsClient.CreateVariableHandle(varname); adsClient.Read(hvar1, istream); istream.Position = 0; getresult = bBinRead.ReadSingle(); } catch { //IsConnected = false; return false; } finally { istream.Dispose(); bBinRead.Dispose(); } return true; } /// <summary> /// 摘要:读PLC数组AdsReadSingleArr /// </summary> /// <param name="varname">varname:PLC变量名</param> /// <param name="getresult">getresult:读取结果</param> /// <param name="arrlength">arrlength: 数组长度</param> /// <returns>结果bool</returns> public bool AdsReadSingleArr(string varname, ref Single[] getresult, int arrlength) { if (!IsConnected) return false; AdsStream istream = new AdsStream(4 * arrlength); BinaryReader bBinRead = new BinaryReader(istream); getresult = new Single[arrlength]; try { int hvar1 = adsClient.CreateVariableHandle(varname); adsClient.Read(hvar1, istream, 0, 4 * arrlength); istream.Position = 0; for (int i = 0; i < arrlength; i++) { //istream.Position = 4 * i; getresult[i] = bBinRead.ReadSingle(); } } catch { //IsConnected = false; return false; } finally { istream.Dispose(); bBinRead.Dispose(); } return true; } /// <summary> /// 摘要:读PLC数据 /// </summary> /// <param name="varname">varname:PLC变量名</param> /// <param name="getresult">getresult:读取结果</param> /// <param name="strLength">strLength: 字符串长度</param> /// <returns>结果bool</returns> public bool AdsReadString(string varname, ref string getresult, int strLength) { if (!IsConnected) return false; AdsStream istream = new AdsStream(strLength); BinaryReader bBinRead = new BinaryReader(istream); try { int hvar1 = adsClient.CreateVariableHandle(varname); adsClient.Read(hvar1, istream); istream.Position = 0; char[] cha = bBinRead.ReadChars(strLength); getresult = new string(cha); } catch { //IsConnected = false; return false; } finally { istream.Dispose(); bBinRead.Dispose(); } return true; }
3.Ads写数据
/// <summary> /// 摘要:写PLC数据 /// </summary> /// <param name="varname"> varname:PLC变量名</param> /// <param name="writevalue">writevalue:写内容</param> /// <returns>结果bool</returns> public bool AdsWriteBool(string varname, bool writevalue) { if (!IsConnected) return false; try { int hvar1 = adsClient.CreateVariableHandle(varname); adsClient.WriteAny(hvar1, writevalue); } catch { return false; } finally { } return true; } /// <summary> /// 摘要:写PLC数据 /// </summary> /// <param name="varname">varname:PLC变量名</param> /// <param name="writevalue">writevalue:写内容</param> /// <returns>结果bool</returns> public bool AdsWriteInt16(string varname, Int16 writevalue) { if (!IsConnected) return false; try { int hvar1 = adsClient.CreateVariableHandle(varname); adsClient.WriteAny(hvar1, writevalue); } catch { return false; } finally { } return true; }

浙公网安备 33010602011771号