private void CmdSendProductionData_Click(object sender, EventArgs e) { var myStructuredDataType = new StructuredDataType("ST_OpcMoveAbsoluteData", "nsu=http://dev.amada/;ns=2;s=:ST_OpcMoveAbsoluteData") { // new DataField("", UAOpcBinaryStandardDataTypes), new DataField("RegType", UAOpcBinaryStandardDataTypes.Int16), // 1 new DataField("ProcessReqID", UAOpcBinaryStandardDataTypes.String), // 2 new DataField("TBlockID", UAOpcBinaryStandardDataTypes.String), // 3 new DataField("LastDataFlag", UAOpcBinaryStandardDataTypes.Int16), // 4 new DataField("BatchNo", UAOpcBinaryStandardDataTypes.String), new DataField("Allowance", UAOpcBinaryStandardDataTypes.Float), new DataField("AlloyName", UAOpcBinaryStandardDataTypes.String), new DataField("AlloyShape", UAOpcBinaryStandardDataTypes.Int16), new DataField("Size1", UAOpcBinaryStandardDataTypes.Float), new DataField("Size2", UAOpcBinaryStandardDataTypes.Float), new DataField("Size3", UAOpcBinaryStandardDataTypes.Float), new DataField("AmadaAlloy", UAOpcBinaryStandardDataTypes.String), new DataField("ProductLength", UAOpcBinaryStandardDataTypes.Float), new DataField("CustomerCode", UAOpcBinaryStandardDataTypes.String), new DataField("CustomerName", UAOpcBinaryStandardDataTypes.String), new DataField("CustomerFurigana", UAOpcBinaryStandardDataTypes.String), new DataField("ReceiverCode", UAOpcBinaryStandardDataTypes.String), new DataField("ReceiverName", UAOpcBinaryStandardDataTypes.String), new DataField("ReceicerFuriganna", UAOpcBinaryStandardDataTypes.String), new DataField("ProductCode", UAOpcBinaryStandardDataTypes.String), new DataField("PlanCount", UAOpcBinaryStandardDataTypes.Int32), new DataField("ResultsCount", UAOpcBinaryStandardDataTypes.Int32), new DataField("CuttingRate", UAOpcBinaryStandardDataTypes.Float), new DataField("SawSpeed", UAOpcBinaryStandardDataTypes.Float), new DataField("CuttingRateOv", UAOpcBinaryStandardDataTypes.Float), new DataField("SawSpeedOv", UAOpcBinaryStandardDataTypes.Float), new DataField("Charge", UAOpcBinaryStandardDataTypes.String), new DataField("ChargeSet", UAOpcBinaryStandardDataTypes.Int16), new DataField("Sorting", UAOpcBinaryStandardDataTypes.String), new DataField("Marking", UAOpcBinaryStandardDataTypes.Int16), new DataField("DeviationSetting", UAOpcBinaryStandardDataTypes.Float), new DataField("Lot", UAOpcBinaryStandardDataTypes.Int32) }; // var myStructuredData = new StructuredData(myStructuredDataType); var myStructuredData = new StructuredData(myStructuredDataType); // myStructuredData.FieldData[""] = new PrimitiveData(0); myStructuredData.FieldData["RegType"] = new PrimitiveData(0); myStructuredData.FieldData["ProcessReqID"] = new PrimitiveData(010100); myStructuredData.FieldData["TBlockID"] = new PrimitiveData(0000000); myStructuredData.FieldData["LastDataFlag"] = new PrimitiveData(0); myStructuredData.FieldData["BatchNo"] = new PrimitiveData("a100"); myStructuredData.FieldData["Allowance"] = new PrimitiveData(0.1); myStructuredData.FieldData["AlloyName"] = new PrimitiveData("1040"); myStructuredData.FieldData["AlloyShape"] = new PrimitiveData(1); myStructuredData.FieldData["Size1"] = new PrimitiveData(100); myStructuredData.FieldData["Size2"] = new PrimitiveData(0); myStructuredData.FieldData["Size3"] = new PrimitiveData(0); myStructuredData.FieldData["AmadaAlloy"] = new PrimitiveData("1040"); myStructuredData.FieldData["ProductLength"] = new PrimitiveData(150.5); myStructuredData.FieldData["CustomerCode"] = new PrimitiveData(""); myStructuredData.FieldData["CustomerName"] = new PrimitiveData(""); myStructuredData.FieldData["CustomerFurigana"] = new PrimitiveData(""); myStructuredData.FieldData["ReceiverCode"] = new PrimitiveData(""); myStructuredData.FieldData["ReceiverName"] = new PrimitiveData(""); myStructuredData.FieldData["ReceicerFuriganna"] = new PrimitiveData(""); myStructuredData.FieldData["ProductCode"] = new PrimitiveData("0"); myStructuredData.FieldData["PlanCount"] = new PrimitiveData(3); myStructuredData.FieldData["ResultsCount"] = new PrimitiveData(0); myStructuredData.FieldData["CuttingRate"] = new PrimitiveData(0); myStructuredData.FieldData["SawSpeed"] = new PrimitiveData(0); myStructuredData.FieldData["CuttingRateOv"] = new PrimitiveData(0); myStructuredData.FieldData["SawSpeedOv"] = new PrimitiveData(0); myStructuredData.FieldData["Charge"] = new PrimitiveData("0"); myStructuredData.FieldData["ChargeSet"] = new PrimitiveData(0); myStructuredData.FieldData["Sorting"] = new PrimitiveData("00-00"); myStructuredData.FieldData["Marking"] = new PrimitiveData(0); myStructuredData.FieldData["DeviationSetting"] = new PrimitiveData(0.2); myStructuredData.FieldData["Lot"] = new PrimitiveData(0); UAEndpointDescriptor endpointDescriptor = "opc.tcp://192.168.1.2:4840"; object[] inputs = { myStructuredData /* 0, // (1) ReqType, 0:Processing request, 1:Cancel, 2: Update "010100", // (2) ProcessReqID, String 10 Allways start with 01 00000000, // (3) TBlockID, Fixed 00000000 0, // (4) LastDataFlag, Fixed 0 "a100", // (5) BatchNo, String 24 0.1, // (6) Allowance, "1040", // (7) AlloyName, String 16 1, // (8) AlloyShape, 1:Round, 2:Square, 3: Plate, 4:Round Pipe 100, // (9) Size1, Material size1 (mm) 0, // (10) Size2, Material size2 (mm) 0, // (11) Size3, Material size3 (mm) "1040", // (12) AmadaAlloy 100.0, // (13) ProductLength, Material lenght (mm) "", // (14) CustomerCode, String 10 "", // (15) CustomerName, String 16 "", // (16) CustomerFurigana, String 16 "", // (17) ReceiverCode, String 10 "", // (18) ReceiverName, String 16 "", // (19) ReceicerFuriganna, String 16 "0", // (20) ProductCode, String Set for 0 10, // (21) PlanCount, Required parts 0, // (22) ResultsCount, Parts already cut 0, // (23) CuttingRate (not used) 0, // (24) SawSpeed (not used) 0, // (25) CuttingRateOv (not used) 0, // (26) SawSpeedOv (not used) "0", // (27) Charge, String 8 0, // (28) ChargeSet, 0:None, 1:Designation, 2:Same charge "00-00", // (29) Sorting, String 00-00 0, // (30) Marking, 0:None, 1:Each lot, 2:All of them 0.2, // (31) DeviationSetting 0 // (32) Lot */ }; TypeCode[] typeCodes = { TypeCode.Int16, // 1 TypeCode.String, //2 TypeCode.String, //3 TypeCode.Int16, //4 TypeCode.String, //5 TypeCode.Single, //6 TypeCode.String, //7 TypeCode.Int16, //8 TypeCode.Single, //9 TypeCode.Single, //10 TypeCode.Single, //11 TypeCode.String, //12 TypeCode.Single, //13 TypeCode.String, //14 TypeCode.String, //15 TypeCode.String, //16 TypeCode.String, //17 TypeCode.String, //18 TypeCode.String, //19 TypeCode.String, //20 TypeCode.Int32, //21 TypeCode.Int32, //22 TypeCode.Single, //23 TypeCode.Single, //24 TypeCode.Int16, //25 TypeCode.Int16, //26 TypeCode.String, //27 TypeCode.Int16, //28 TypeCode.String, //29 TypeCode.Int16, //30 TypeCode.Single, //31 TypeCode.Int32 //32 }; Console.WriteLine(inputs); // Instantiate the client object var client = new EasyUAClient(); // Perform the operation. object[] outputs; try { outputs = client.CallMethod( endpointDescriptor, "nsu=http://dev.amada/;ns=2;i=5043", "nsu=http://dev.amada/;ns=2;i=7005", inputs); //typeCodes) ; } catch (UAException uaException) { string message = uaException.GetBaseException().Message; string title = "Error:"; MessageBox.Show(message, title); Console.WriteLine($"*** Failure: {uaException.GetBaseException().Message}"); return; } }