MX Component基礎使用(多點位讀取,多點位寫入)

步驟,先連接PLC,然后在填入對應的點位 D10 然后去讀取。
在這里插入圖片描述

 using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Windows.Forms;using ActUtlTypeLib;namespace MX_Component{public partial class Form1 : Form{//傳教Utl控件private ActUtlType plc;public Form1(){InitializeComponent();plc = new ActUtlType();guna2Button2.Enabled = false;guna2Button3.Enabled = false;guna2Button4.Enabled = false;}//連接plcprivate void guna2Button1_Click(object sender, EventArgs e){int iReturnCode;int iLogicalStationNumber;if (guna2TextBox1.Text == ""){MessageBox.Show("The TextBox has not been entered.", Name, MessageBoxButtons.OK, MessageBoxIcon.Error);return;}iLogicalStationNumber = Convert.ToInt32(this.guna2TextBox1.Text);try{plc.ActLogicalStationNumber = iLogicalStationNumber;//輸入站號iReturnCode = plc.Open();//打開連接//設置控件if (iReturnCode == 0){this.guna2Button2.Enabled = true;this.guna2Button1.Enabled = false;guna2TextBox1.Enabled = false;guna2TextBox2.Enabled = false;guna2Button3.Enabled = true;guna2Button4.Enabled = true;}}catch (Exception ex){MessageBox.Show(ex.Message, Name, MessageBoxButtons.OK, MessageBoxIcon.Error);return;}}//關閉連接private void guna2Button2_Click(object sender, EventArgs e){int iReturnCode;try{iReturnCode = plc.Close();//關閉連接if (iReturnCode == 0){this.guna2Button2.Enabled = false;this.guna2Button1.Enabled = true;guna2TextBox1.Enabled = true;guna2TextBox2.Enabled = true;guna2Button3.Enabled = false;guna2Button4.Enabled = false;}}catch (Exception ex){MessageBox.Show(ex.Message, Name, MessageBoxButtons.OK, MessageBoxIcon.Error);return;}}//軟元件批量讀取private void guna2Button3_Click(object sender, EventArgs e){int iReturnCode;string szDeviceName;int iNumberOfData;short[] arrDeviceValue;string[] arrData;try{if (guna2TextBox4.Text == null || guna2TextBox6.Text == null)//判斷TextBox是否為空{MessageBox.Show("The TextBox has not been entered.", Name, MessageBoxButtons.OK, MessageBoxIcon.Error);return;}szDeviceName = string.Join("\n", guna2TextBox4.Lines);iNumberOfData = Convert.ToInt32(guna2TextBox6.Text);arrDeviceValue = new short[iNumberOfData];iReturnCode = plc.ReadDeviceBlock2(szDeviceName, iNumberOfData, out arrDeviceValue[0]);//讀取數據if (iReturnCode == 0)//判斷讀取結果{arrData = new string[iNumberOfData];//數據分行顯示到TextBox中for (int i = 0; i < iNumberOfData; i++){arrData[i] = arrDeviceValue[i].ToString();}guna2TextBox5.Lines = arrData;}}catch (Exception ex){MessageBox.Show(ex.Message, Name, MessageBoxButtons.OK, MessageBoxIcon.Error);return;}}//批量寫入數據private void guna2Button4_Click(object sender, EventArgs e){int iReturnCode;string szDeviceName;int iNumberOfData;short[] lpsData;if (guna2TextBox4.Text == null || guna2TextBox6.Text == null||guna2TextBox3.Text==null){MessageBox.Show("The TextBox has not been entered.", Name, MessageBoxButtons.OK, MessageBoxIcon.Error);return;}szDeviceName = guna2TextBox4.Text;iNumberOfData = Convert.ToInt32(guna2TextBox6.Text);lpsData = new short[iNumberOfData];try{if (guna2TextBox3.Lines.Length!= iNumberOfData){MessageBox.Show("The element count of the array has to be the same as the size.",Text, MessageBoxButtons.OK, MessageBoxIcon.Error);return;}//待寫數據轉為short[]for (int i = 0; i < iNumberOfData; i++){lpsData[i] = Convert.ToInt16( guna2TextBox3.Lines[i]);}iReturnCode = plc.WriteDeviceBlock2(szDeviceName, iNumberOfData, ref lpsData[0]);//寫入數據}catch (Exception ex){MessageBox.Show(ex.Message,Name, MessageBoxButtons.OK, MessageBoxIcon.Error);return;}}}

其他參考信息
MX Component函數一覽
Open 通信線路的打開
Close 通信線路的關閉
ReadDeviceBlock 軟元件的批量讀取 (4字節數據)
WriteDeviceBlock 軟元件的批量寫入 (4字節數據)
ReadDeviceRandom 軟元件的隨機讀取 (4字節數據)
WriteDeviceRandom 軟元件的隨機寫入 (4字節數據)
SetDevice 軟元件1點的設置 (4字節數據)
GetDevice 軟元件1點的數據獲取 (4字節數據)
ReadBuffer 緩沖存儲器的讀取
WriteBuffer 緩沖存儲器的寫入
GetClockData CPU模塊的時鐘數據讀取
SetClockData CPU模塊的時鐘數據寫入
GetCpuType CPU模塊型號讀取
SetCpuStatus PU模塊的遠程RUN/STOP/PAUSE
EntryDeviceStatus 2 軟元件的狀態監視登錄
FreeDeviceStatus 軟元件的狀態監視登錄的解除
OnDeviceStatus 事件通知
ReadDeviceBlock2 軟元件的批量讀取 (2字節數據)
WriteDeviceBlock2 軟元件的批量寫入 (2字節數據)
ReadDeviceRandom2 軟元件的隨機讀取 (2字節數據)
WriteDeviceRandom2 軟元件的隨機寫入 (2字節數據)
SetDevice2 軟元件1點的設置 (2字節數據)
GetDevice2 軟元件1點的數據獲取 (2字節數據)
GetErrorMessage 錯誤內容及處理方法的獲取
ReadFirstFile 文件名/目錄名的搜索
ReadNextFile 文件名/目錄名的搜索
ReadClose 搜索的結束
GetFile 記錄文件的傳送
Dispose 存儲器的釋放

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/18366.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/18366.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/18366.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

邊緣計算網關的主要功能有哪些?天拓四方

隨著物聯網&#xff08;IoT&#xff09;的快速發展和普及&#xff0c;邊緣計算網關已經成為了數據處理和傳輸的重要樞紐。作為一種集成數據采集、協議轉換、數據處理、數據聚合和遠程控制等多種功能的設備&#xff0c;邊緣計算網關在降低網絡延遲、提高數據處理效率以及減輕云數…

民國漫畫雜志《時代漫畫》第13期.PDF

時代漫畫13.PDF: https://url03.ctfile.com/f/1779803-1247458360-14efab?p9586 (訪問密碼: 9586) 《時代漫畫》的雜志在1934年誕生了&#xff0c;截止1937年6月戰爭來臨被迫停刊共發行了39期。 ps:資源來源網絡&#xff01;

數組的定義、順序存儲及特殊矩陣的存儲

目錄 一、數組的定義 1.1概念 1.2抽象數據類型定義 二、數組的順序存儲 2.1一維數組元素的存儲位置 2.2二維數組元素的存儲位置 2.3三維數組元素的存儲位置 三、特殊矩陣的壓縮存儲 3.1相關概念 3.2對稱矩陣 3.3三角矩陣 3.4對角矩陣&#xff08;帶狀矩陣&#xff0…

【機器學習300問】102、什么是混淆矩陣?

一、混淆矩陣的定義 混淆矩陣是一種用于評估分類模型性能的評估指標。當模型對數據進行預測并將數據分配到預定義的類別時&#xff0c;混淆矩陣提供了一種直觀的方式來總結這些預測與數據實際類別之間的對應關系。具體來說&#xff0c;它是一個表格。 二、分類模型性能評估一級…

私域用戶畫像分析

為什么做私域要分析用戶畫像&#xff1f; 1、更好地了解用戶需求&#xff1a;通過分析用戶畫像&#xff0c;可以深入了解用戶的需求、偏好、行為等特征&#xff0c;從而更好地滿足他們的需求。 2、個性化營銷&#xff1a;根據用戶畫像&#xff0c;可以為用戶提供個性化的營銷…

js setTimeout、setInterval、promise、async await執行順序梳理

基礎知識 async: 關鍵字用于標記一個函數為異步函數&#xff0c;該函數中有一個或多個promise對象&#xff0c;需要等待執行完成后才會繼續執行。 await:關鍵字&#xff0c;用于等待一個promise對象執行完&#xff0c;并返回其中的值&#xff0c;只能在async函數內部使用。可…

云服務器平臺AutoDL--基本介紹與使用感受

因為課程作業需要復現DreamBooth&#xff0c;找了幾個教程之后&#xff0c;發現了AutoDL這個好東西&#xff0c;蕪湖~ 相關概念 以下回答來自于ChatGPT。 云計算平臺&#xff1a;云服務器平臺是提供按需計算資源和服務的在線平臺&#xff0c;通常包括存儲、處理能力、數據庫、…

搜維爾科技:使用Haption Virtuose 6D 力反饋通過機器人和虛擬現實完成遠程操作項目

使用Haption Virtuose 6D 力反饋通過機器人和虛擬現實完成遠程操作項目 搜維爾科技&#xff1a;使用Haption Virtuose 6D 力反饋通過機器人和虛擬現實完成遠程操作項目

【Python設計模式06】代理模式

代理模式&#xff08;Proxy Pattern&#xff09;是一種結構型設計模式&#xff0c;它通過創建代理對象來控制對另一個對象的訪問。代理模式可以用于延遲實例化、控制訪問權限、記錄日志等。代理模式的核心思想是為其他對象提供一種代理&#xff0c;以控制對這個對象的訪問。 代…

System32文件夾千萬不能刪除,看完這篇你就知道為什么了

序言 C:\Windows\System32目錄是Windows操作系統的關鍵部分,重要的系統文件存儲在該目錄中。網上的一些惡作劇者可能會告訴你刪除它,但你不應該嘗試去操作,如果你嘗試的話,我們會告訴你會發生什么。 什么是System32文件夾 位于C:\Windows\System32的System32文件夾是所有…

Python深度學習:【模型系列】Transformer面試靈魂20問

1. transformer簡介 Transformer模型是一種基于自注意力機制的神經網絡架構,主要用于處理序列數據,如自然語言處理任務。它由Google在2017年提出,并在“Attention is All You Need”這篇論文中首次公開。Transformer模型的核心思想是利用自注意力機制來捕捉序列中的依賴關系…

MySQL 的表約束詳解

在數據庫設計中&#xff0c;約束&#xff08;Constraints&#xff09;是確保數據完整性和一致性的關鍵工具。MySQL 作為流行的關系型數據庫管理系統&#xff0c;提供了多種約束類型來維護數據的準確性和可靠性。本文將詳細探討 MySQL 的各種表約束&#xff0c;包括它們的定義、…

【代碼隨想錄】面試常考類型之動態規劃01背包

前言 更詳細的在大佬的代碼隨想錄 (programmercarl.com) 本系列僅是簡潔版筆記&#xff0c;為了之后方便觀看 不同的二叉搜索樹 96. 不同的二叉搜索樹 - 力扣&#xff08;LeetCode&#xff09; 通過舉例子發現重疊子問題 代碼很簡單&#xff0c;主要是思路問題&#xff0…

Windows內核函數 - 創建關閉注冊表

在驅動程序的開發中&#xff0c;經常會用到對注冊表的操作。與Win32的API不同&#xff0c;DDK提供另外一套對注冊表操作的相關函數。首先明確一下注冊表里的幾個概念&#xff0c;避免在后面混淆。 圖1 注冊表概念 有5個概念需要重申一下&#xff1a; * 注冊表項&#xff1a; 注…

008、字符串_內部編碼

字符串類型的內部編碼有3種&#xff1a; int&#xff1a;8個字節的長整型。 embstr&#xff1a;小于等于39個字節的字符串。 raw&#xff1a;大于39個字節的字符串。 Redis會根據當前值的類型和長度決定使用哪種內部編碼實現。 整數類型示例如下&#xff1a; 127.0.0.1:6379&…

使用 MyBatis-Plus 的 IService 進行模糊查詢操作

使用 MyBatis-Plus 的 IService 進行模糊查詢操作 一、前言1. 普通模糊查詢&#xff08;like&#xff09;2. 左模糊查詢&#xff08;likeLeft&#xff09;3. 右模糊查詢&#xff08;likeRight&#xff09;4. 不匹配指定字符串的模糊查詢&#xff08;notLike&#xff09; 一、前…

unity接入live2d

在bilibili上找到一個教程&#xff0c;首先注意一點&#xff0c;你直接導入那個sdk&#xff0c;并且打開示例&#xff0c;顯示的模型是有問題的&#xff0c;你需要調整模型上腳本的一個枚舉值&#xff0c;調整它的渲染順序是front z to我看教程時候&#xff0c;很多老師都沒有提…

常用匯編指令

&#xff08;arg&#xff09;argument&#xff1a;自變量&#xff0c;變元 &#xff08;reg&#xff09;register&#xff1a;寄存器 &#xff08;seg&#xff09;segment&#xff1a;段寄存器 &#xff08;mem&#xff09;memory&#xff1a;存儲器&#xff08;內存單元&am…

什么是 BIO、NIO、AIO?

BIO、NIO、AIO 都是 Java 的 IO 模型 BIO (Blocking IO) 是傳統的 IO 模型&#xff0c;它在讀寫數據時會阻塞線程&#xff0c;直到數據讀寫完成&#xff0c;適用于并發不高的場景。 NIO (Non-blocking IO) 是 Java 的新 IO 模型&#xff0c;它在讀寫數據時不會阻塞線程&#…

Flutter 中的 AnimatedPositionedDirectional 小部件:全面指南

Flutter 中的 AnimatedPositionedDirectional 小部件&#xff1a;全面指南 在 Flutter 中&#xff0c;AnimatedPositionedDirectional 是一個用于創建具有方向感知的動畫定位效果的組件。它允許開發者在動畫過程中動態地改變子組件的位置&#xff0c;并且可以指定動畫的方向&a…