CNC - Rdmacror: Public Static Extern Short Ushort Short Short Short
CNC - Rdmacror: Public Static Extern Short Ushort Short Short Short
声明
/* read custom macro variables(area specified) */
[DllImport("FWLIB32.dll", EntryPoint = "cnc_rdmacror")]
public static extern short cnc_rdmacror(ushort FlibHndl, short a,
short b, short c, [Out, MarshalAs(UnmanagedType.LPStruct)] IODBMR d);
描述
读指定范围用户宏变量。(最多读 5 个用户宏变量)
参数
(1)FlibHndl 库句柄;[ in ]
(2)s_number [ in ]
(3)e_number [ in ]
(4)length [ out ]
(5)macror [ out ]
/* cnc_rdmacror:read custom macro variables(area specified) */
/* cnc_wrmacror:write custom macro variables(area specified)
*/
[StructLayout(LayoutKind.Sequential, Pack = 4)]
public class IODBMR_data
{
public int mcr_val; /* macro variable */
public short dec_val; /* decimal point */
}
[StructLayout(LayoutKind.Sequential, Pack = 4)]
public class IODBMR1
{
public IODBMR_data data1 = new IODBMR_data();
public IODBMR_data data2 = new IODBMR_data();
public IODBMR_data data3 = new IODBMR_data();
public IODBMR_data data4 = new IODBMR_data();
public IODBMR_data data5 = new IODBMR_data();
} /* In case that the number of data is 5 */
[StructLayout(LayoutKind.Sequential, Pack = 4)]
public class IODBMR
{
public short datano_s; /* start macro number */
public short dummy; /* dummy */
public short datano_e; /* end macro number */
public IODBMR1 data = new IODBMR1();
}
函数返回值
函数运行正常返回 EW_OK。
Return code Meaning/Error handling
EW_NOOPT No option
(6) This function needs the custom macro option.
代码
NC 侧实际情况:
调试结果:
class Program
{
static void Main(string[] args)
{
ushort Flibhndl = 0;
// 获取库句柄 ( Ethernet )
ret = Focas1.cnc_allclibhndl3("192.168.0.224", 8193, 10, out
Flibhndl);
if (ret != Focas1.EW_OK)
{
Console.WriteLine("发生异常,请检查!");
return;
}
#region cnc_rdmacror