c#濡備綍涓巔lc閫氳
瑕佷笌PLC杩涜閫氫俊锛屾偍鍙互浣跨敤C#缂栫▼璇█鏉ュ疄鐜般€備互涓嬫槸涓€浜涘父鐢ㄧ殑鏂规硶锛?/p>
- 浣跨敤涓插彛閫氫俊锛歅LC閫氬父閫氳繃涓插彛涓庤绠楁満杩涜閫氫俊銆傛偍鍙互浣跨敤C#鐨凷erialPort绫绘潵涓嶱LC杩涜閫氫俊銆傞鍏堬紝鎮ㄩ渶瑕佹墦寮€涓插彛骞惰缃浉搴旂殑鍙傛暟锛屽娉㈢壒鐜囥€佹暟鎹綅銆佸仠姝綅鍜屾牎楠屼綅銆傜劧鍚庯紝鎮ㄥ彲浠ヤ娇鐢⊿erialPort绫荤殑Read鍜學rite鏂规硶鏉ヨ鍙栧拰鍐欏叆鏁版嵁銆?/li>
绀轰緥浠g爜锛?/p>
using System.IO.Ports;
SerialPort port = new SerialPort("COM1", 9600, Parity.None, 8, StopBits.One);
port.Open();
port.Write("浣犵殑鍛戒护"); // 鍚慞LC鍙戦€佸懡浠?/span>
string response = port.ReadLine(); // 浠嶱LC璇诲彇鍝嶅簲
port.Close();
- 浣跨敤浠ュお缃戦€氫俊锛氭湁浜汸LC鏀寔浠ュお缃戦€氫俊銆傛偍鍙互浣跨敤C#鐨凷ocket绫绘垨鑰呯涓夋柟搴撳Modbus.NET鏉ヤ笌PLC杩涜閫氫俊銆傞鍏堬紝鎮ㄩ渶瑕佸垱寤轰竴涓猄ocket杩炴帴鍒癙LC鐨処P鍦板潃鍜岀鍙e彿銆傜劧鍚庯紝鎮ㄥ彲浠ヤ娇鐢⊿ocket绫荤殑Send鍜孯eceive鏂规硶鏉ュ彂閫佸拰鎺ユ敹鏁版嵁銆?/li>
绀轰緥浠g爜锛?/p>
using System.Net;
using System.Net.Sockets;
IPAddress ipAddress = IPAddress.Parse("PLC鐨処P鍦板潃");
int port = 502;
TcpClient client = new TcpClient();
client.Connect(ipAddress, port);
NetworkStream stream = client.GetStream();
byte[] command = { 0x01, 0x02, 0x03 }; // 鍙戦€佺殑鍛戒护
stream.Write(command, 0, command.Length);
byte[] response = new byte[256]; // 鎺ユ敹鐨勫搷搴?/span>
int bytesRead = stream.Read(response, 0, response.Length);
stream.Close();
client.Close();
杩欎簺浠g爜鍙槸绠€鍗曠殑绀轰緥锛屽叿浣撶殑閫氫俊鍗忚鍜屽懡浠ゆ牸寮忛渶瑕佹牴鎹偍浣跨敤鐨凱LC鍨嬪彿鍜岄€氫俊鍗忚鏉ョ‘瀹氥€傚鏋滄偍浣跨敤鐨勬槸鐗瑰畾鐨凱LC鍝佺墝鍜屽瀷鍙凤紝鍙互鏌ラ槄鍏剁浉鍏虫枃妗d互鑾峰彇鏇磋缁嗙殑閫氫俊鍗忚鍜屽懡浠ゆ牸寮忋€?/p>
相关问答