tx198835
級別: 略有小成
精華主題: 0
發(fā)帖數(shù)量: 139 個
工控威望: 281 點
下載積分: 555 分
在線時間: 220(小時)
注冊時間: 2010-06-26
最后登錄: 2024-09-22
查看tx198835的 主題 / 回貼
樓主  發(fā)表于: 2019-09-13 04:15
圖片:
有做過上位機的朋友嗎,請教SQL批量獲取M0 256點  D0 256點,該如何做,關(guān)鍵是刷新時間問題
下面我是剛寫的思路往各位大神指正:

    /// <summary>
        /// Act控件初始化
       /// </summary>
        public Form1()
        {
            InitializeComponent();
            axActUtlType1.ActLogicalStationNumber = 10;
            axActUtlType1.ActPassword = "";
        }

// 按鈕獲取值
    private void button1_Click(object sender, EventArgs e)
        {
            textBox1.Clear();
            short[] M_Memory = new short[16];
            axActUtlType1.Open();
            axActUtlType1.ReadDeviceBlock2("m0", 256, out M_Memory[0]);
            for (int i = 0; i < 256; i++)
            {

                if (Mitsubishi.Mitsubishi_M_Memory(M_Memory) == true)
                {
                    textBox1.AppendText("M" + i + "= 1  ");
                }
                else
                {
                    textBox1.AppendText("M" + i + "= 0  ");
                }
            }
        }



        /// <summary>
        /// mx compoment讀取的值轉(zhuǎn)換成
        /// </summary>
        /// <param name="M_Ararry">要轉(zhuǎn)換的byte數(shù)組</param>
        /// <returns>B00L數(shù)組</returns>
        public static bool[] Mitsubishi_M_Memory(short[] M_Memory)
        {          
            int a = 0;
            bool[] b = new bool[256];
            for (int j = 0; j < M_Memory.Length; j++)
            {
                for (int i = 0; i < 16; i++)
                {
                    if ((0x01 & M_Memory[j] >> i) == 1)
                    {
                        b[a] = true;
                        a++;
                    }
                    else
                    {
                        b[a] = false;
                        a++;
                    }
                }
            }
            return b;
        }
[ 此帖被tx198835在2019-09-13 04:23重新編輯 ]
xyzenter
活在當(dāng)下,順其自然
級別: 略有小成
精華主題: 0
發(fā)帖數(shù)量: 135 個
工控威望: 266 點
下載積分: 2080 分
在線時間: 108(小時)
注冊時間: 2014-04-09
最后登錄: 2021-04-13
查看xyzenter的 主題 / 回貼
1樓  發(fā)表于: 2019-10-29 13:44
ReadDeviceBlock2()這條指令是毫秒級的,不存在響應(yīng)慢的問題,如果刷新慢,請更換網(wǎng)線連接或者加快觸發(fā)此條指令的頻率。
還有Open()是需要時間的,