洛陽市SIEMENS一級分銷商西門子(中國)有限公司授權總代理
| 更新時間 2024-11-24 08:00:00 價格 請來電詢價 西門子PLC 西門子伺服電機 西門子觸摸屏 西門子電纜 西門子變頻器 西門子模塊 聯系電話 13510737515 聯系手機 13185520415 聯系人 董海波 立即詢價 |
詳細介紹
startByteAdr是在數據塊內以字節為單位的起始地址,可以傳入0。bitAdr 為需要操作的位的偏移地址(以startByteAdr為基準),value 為寫入的值。dataType為枚舉類型,我們操作的是數據塊,傳入DataBlock。
public void WriteBit(DataType dataType, int db, int startByteAdr, int bitAdr, bool value);
public enum DataType
{
Counter = 28,
Timer = 29,
Input = 129,
Output = 130,
Memory = 131,
DataBlock = 132
}
按字節讀:count代表讀的字節數量。在進行按字節讀寫時,對于8位的單字節變量來說沒有任何問題。但是對于多字節比如在PLC中16位I的INT類型,需要注意大小端問題。在西門子PLC中以大端模式存儲數據,但是在Intel的X86架構的PC上,卻是以小端模式。所以,在從PLC讀取一個INT類型的變量,需要將讀取回來的字節數組高低字節調換,后面C#程序中會有詳細的實現代碼。public byte[] ReadBytes(DataType dataType, int db, int startByteAdr, int count);
按字節寫:value代表將要傳輸的數據轉換成的字節數組,如果要操作一個INT變量,需要提前將高低字節調換,后面C#程序中會有詳細的實現代碼。public void WriteBytes(DataType dataType, int db, int startByteAdr, byte[] value);
同時還要在硬件組態中,設置防護與安全中的連接機制。將“允許來自遠程對象的PUT/GET訪問”勾選。如下圖:
public void WriteBit(DataType dataType, int db, int startByteAdr, int bitAdr, bool value);
public enum DataType
{
Counter = 28,
Timer = 29,
Input = 129,
Output = 130,
Memory = 131,
DataBlock = 132
}
1
2
3
4
5
6
7
8
9
10
1
1
(二)PLC設置
實現外部程序可以訪問操作DB塊,需要對PLC部分做一些設置。首先對于要讀取或者訪問的DB塊,要將優化的塊訪問取消,默認為勾選的,選中塊右擊選擇屬性。同時還要在硬件組態中,設置防護與安全中的連接機制。將“允許來自遠程對象的PUT/GET訪問”勾選。如下圖:
(三)C#程序
在C#上位機軟件中,對通訊類庫的函數做一個簡單的包裝,以方便我們使用。首先新建一個類S7,在項目中需要引用S7.NET,并在該類中包含命名空間。using S7.Net;1
相關產品
產品分類
聯系方式
- 電 話:13510737515
- 聯系人:董海波
- 手 機:13185520415
- 微 信:13185520415