tx198835
級(jí)別: 略有小成
![]() |
圖片:
![]() 有做過上位機(jī)的朋友嗎,請(qǐng)教SQL批量獲取M0 256點(diǎn) D0 256點(diǎn),該如何做,關(guān)鍵是刷新時(shí)間問題 下面我是剛寫的思路往各位大神指正: /// <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重新編輯 ] |
---|---|
|
tx198835
級(jí)別: 略有小成
![]() |
這個(gè)值是測(cè)試版 關(guān)鍵刷新時(shí)間太長(zhǎng)了 |
---|---|
|
xyzenter
活在當(dāng)下,順其自然
級(jí)別: 略有小成
![]() |
ReadDeviceBlock2()這條指令是毫秒級(jí)的,不存在響應(yīng)慢的問題,如果刷新慢,請(qǐng)更換網(wǎng)線連接或者加快觸發(fā)此條指令的頻率。 還有Open()是需要時(shí)間的, |
---|---|
|
yiluzoulaia
級(jí)別: 探索解密
![]() |
三菱MC協(xié)議用C#實(shí)現(xiàn)的源碼,有需求可以聯(lián)系我15006163692 微信同號(hào) |
---|---|
|
吾志所向
級(jí)別: 家園常客
![]() |
收集的PC高級(jí)語(yǔ)言與PLC通訊的代碼資源,供參考: 三菱:http://blog.sina.com.cn/s/blog_16d7d3ecb0102x6wj.html 歐姆龍:http://blog.sina.com.cn/s/blog_16d7d3ecb0102x3qi.html 西門子:http://blog.sina.com.cn/s/blog_16d7d3ecb0102x1z5.html 羅克韋爾:http://blog.sina.com.cn/s/blog_16d7d3ecb0102zcwe.html 施耐德:http://blog.sina.com.cn/s/blog_16d7d3ecb0102x7ui.html GE PAC/PLC: http://m.shyufengchun.cn/read-gktid-1715416.html |
---|---|
|