using DoWhatPlc; using Newtonsoft.Json; using System; using System.Collections.Concurrent; using System.Collections.Generic; using System.Data; using System.IO; using System.Linq; using System.Net; using System.Net.Http; using System.Text; using System.Threading.Tasks; namespace DtWebApi { public partial class ReadWritePLC { //http://localhost:41186//api//PLC1//Write_TagValueByTagTypeName//?cmd=ConfirmOkGo&opName=OP020&tagValue=True //http://localhost:41186//api//PLC1//Read_TagValueByTagTypeName//?cmd=PalletInfo&opName=OP020 public static object Read_TagValueByTagTypeName(string cmd, string opName) { string api = ""; string type = "GET"; string controlStr = "PLC1"; string actionStr = "Read_TagValueByTagTypeName"; Dictionary dic = new Dictionary(); dic.Add("cmd", cmd); dic.Add("opName", opName); var rc = new CallWebApi().InvokeWebapiReturnValueObject(controlStr, actionStr, api, type, dic); if(rc.ValueType=="bool" || rc.ValueType == "boolean") { return Convert.ToInt32(rc.TagValue); } return rc.TagValue; } public static object ReadPLC(string tagID) { string api = ""; string type = "GET"; string controlStr = "PLC1"; string actionStr = "ReadPLC"; Dictionary dic = new Dictionary(); dic.Add("tagID", tagID); var rc = new CallWebApi().InvokeWebapiReturnValueObject(controlStr, actionStr, api, type, dic); return rc.TagValue; } public static object ReadPLC(string tagTypeCodeID, string opName) { string api = ""; string type = "GET"; string controlStr = "PLC1"; string actionStr = "ReadPLC_TagTypeCodeID"; Dictionary dic = new Dictionary(); dic.Add("tagTypeCodeID", tagTypeCodeID); dic.Add("opName", opName); var rc = new CallWebApi().InvokeWebapiReturnValueObject(controlStr, actionStr, api, type, dic); return rc.TagValue; } public static byte[] ReadByteData_Op(string OpName, string Adr, ushort Length) { string api = ""; string type = "GET"; string controlStr = "PLC1"; string actionStr = "ReadByteData_Op"; Dictionary dic = new Dictionary(); dic.Add("OpName", OpName); dic.Add("Adr", Adr); dic.Add("Length", Length.ToString()); var rc = new CallWebApi().InvokeWebapiReturnValueObject(controlStr, actionStr, api, type, dic); return JsonToByte(rc.TagValue.ToString()); } public static byte[] ReadByteData_Ip(string Ip, string Adr, ushort Length) { string api = ""; string type = "GET"; string controlStr = "PLC1"; string actionStr = "ReadByteData_Ip"; Dictionary dic = new Dictionary(); dic.Add("Ip", Ip); dic.Add("Adr", Adr); dic.Add("Length", Length.ToString()); var rc = new CallWebApi().InvokeWebapiReturnValueObject(controlStr, actionStr, api, type, dic); return JsonToByte(rc.TagValue.ToString()); } public static object WritePLC_Bytes_Op(string OpName, string Adr, byte[] bytes) { string bytesStr = ByteToJson(bytes); string api = ""; string type = "GET"; string controlStr = "PLC1"; string actionStr = "WritePLC_Bytes_Op"; Dictionary dic = new Dictionary(); dic.Add("OpName", OpName); dic.Add("Adr", Adr); dic.Add("bytes", bytesStr); var rc = new CallWebApi().InvokeWebapiReturnValueObject(controlStr, actionStr, api, type, dic); return rc.TagValue; } public static object WritePLC_Bytes_Ip(string Ip, string Adr, byte[] bytes) { string bytesStr = ByteToJson(bytes); string api = ""; string type = "GET"; string controlStr = "PLC1"; string actionStr = "WritePLC_Bytes_Ip"; Dictionary dic = new Dictionary(); dic.Add("OpName", Ip); dic.Add("Adr", Adr); dic.Add("bytes", bytesStr); var rc = new CallWebApi().InvokeWebapiReturnValueObject(controlStr, actionStr, api, type, dic); return rc.TagValue; } static public string ByteToJson(byte[] bytes) { string convertJson = System.Text.Encoding.UTF8.GetString(bytes); return convertJson; } static public byte[] JsonToByte(string strjson) { byte[] bytes = System.Text.Encoding.UTF8.GetBytes(strjson); return bytes; } public static List ReadPLC(List tagTypeCodeIDList, List opNameList) { string tagTypeCodeID = JsonConvert.SerializeObject(tagTypeCodeIDList); string opName = JsonConvert.SerializeObject(opNameList); string api = ""; string type = "GET"; string controlStr = "PLC1"; string actionStr = "ReadPLC_TagTypeCodeIDList"; Dictionary dic = new Dictionary(); dic.Add("tagTypeCodeID", tagTypeCodeID); dic.Add("opName", opName); var rc = new CallWebApi().InvokeWebapiReturnValueObjectList(controlStr, actionStr, api, type, dic); return rc; } public static List ReadPLC_GroupData(string opName) { string api = ""; string type = "GET"; string controlStr = "PLC1"; string actionStr = "ReadPLC_GroupData"; Dictionary dic = new Dictionary(); dic.Add("opName", opName); return new CallWebApi().InvokeWebapiReturnValueObjectList(controlStr, actionStr, api, type, dic); } public static ConcurrentDictionary ReadPLC_OpName(string opName) { string api = ""; string type = "GET"; string controlStr = "PLC1"; string actionStr = "ReadPLC_OpName"; Dictionary dic = new Dictionary(); dic.Add("opName", opName); return new CallWebApi().InvokeWebapiConcurrentDictionaryTagFormat(controlStr, actionStr, api, type, dic); } } }