newhzh
級別: 探索解密
精華主題: 0
發(fā)帖數(shù)量: 4 個
工控威望: 132 點
下載積分: 610 分
在線時間: 3(小時)
注冊時間: 2013-06-28
最后登錄: 2013-07-18
查看newhzh的 主題 / 回貼
樓主  發(fā)表于: 2013-06-28 15:54
環(huán)境:VS2008 C#.NET,MX Component3.00A ,PLC型號:FX3U-16MT
在項目中引用了ACTPCCOMLib , 代碼如下:

private void btnRead_Click(object sender, EventArgs e)
        {
            ACTPCCOMLib.ActFXCPUClass act = new ACTPCCOMLib.ActFXCPUClass();
            int val = act.Open();
            if (val != 0)
            {
                MessageBox.Show("PLC通訊打開失!");
                return;
            }
            
            int B;

            val = act.ReadDeviceBlock("D0", 10, out B);
            
            memoEdit1.Text = "返回代碼:" + val.ToString();
            
        }

在執(zhí)行ReadDeviceBlock函數(shù)時,報錯,請教一下哪里的問題?
多謝!
newhzh
級別: 探索解密
精華主題: 0
發(fā)帖數(shù)量: 4 個
工控威望: 132 點
下載積分: 610 分
在線時間: 3(小時)
注冊時間: 2013-06-28
最后登錄: 2013-07-18
查看newhzh的 主題 / 回貼
1樓  發(fā)表于: 2013-06-28 16:50
在C#里面,ReadDeviceBlock函數(shù)提示的out參數(shù)是int型,我就不太明白,從D0開始讀取10位,這個返回值怎么能存放在一個int型的參數(shù)中?按理說應(yīng)該給給int[]數(shù)組類型作為返回值啊。
想不明白,請不吝賜教!
newhzh
級別: 探索解密
精華主題: 0
發(fā)帖數(shù)量: 4 個
工控威望: 132 點
下載積分: 610 分
在線時間: 3(小時)
注冊時間: 2013-06-28
最后登錄: 2013-07-18
查看newhzh的 主題 / 回貼
2樓  發(fā)表于: 2013-07-18 14:56
這樣寫即可:

int[] B=new int[10]

val = act.ReadDeviceBlock("D0", 10, out B[0]);