//读参数结构体初始化函数 public static void R_Struct_Inital(ref S7_READ_PARA R_Struct, String Mvar_name) { R_Struct.access = S7_ACCESS_SYMB_ADDRESS; R_Struct.var_name = Mvar_name; R_Struct.index = 0; R_Struct.subindex = 0; R_Struct.address_len = 0; R_Struct.address = null; }
/// <summary> /// 接收数据,如果返回nomesssge 则不会对value_ptr进行修改 /// </summary> /// <param name="cp_descr"></param> /// <param name="cref"></param> /// <param name="orderid"></param> /// <param name="read_para"></param> /// <param name="value_ptr"></param> /// <returns></returns> public static int Receive(UInt32 cp_descr, UInt16 cref, UInt16 orderid, ref S7_READ_PARA read_para, Byte[] value_ptr) { int ret; UInt16 value_length = (UInt16)value_ptr.Length; IntPtr NULL_PTR = new IntPtr(); UInt16 result = 0; ret = s7_receive(cp_descr, ref cref, ref orderid); switch (ret) { case S7_NO_MSG: break; case S7_INITIATE_CNF: s7_get_initiate_cnf(); break; case S7_READ_CNF: s7_get_read_cnf(NULL_PTR, ref value_length, value_ptr); // S7_read_req(cp_descr, cref, orderid, ref read_para); break; case S7_WRITE_CNF: s7_get_write_cnf(); break; case S7_MULTIPLE_READ_CNF: break; case S7_MULTIPLE_WRITE_CNF: s7_get_multiple_write_cnf(ref result); break; case S7_ABORT_IND: s7_get_abort_ind(); break; default: break; } return(ret); }
public static extern int s7_read_req(UInt32 cp_descr, UInt16 cref, UInt16 orderid, ref S7_READ_PARA read_para);