初始化版本
This commit is contained in:
105
SLC1-N/Form_PLC_Serialport.cs
Normal file
105
SLC1-N/Form_PLC_Serialport.cs
Normal file
@@ -0,0 +1,105 @@
|
||||
using Microsoft.VisualBasic.Devices;
|
||||
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;
|
||||
|
||||
namespace SLC1_N
|
||||
{
|
||||
public partial class Form_PLC_Serialport : Form
|
||||
{
|
||||
public Form_PLC_Serialport()
|
||||
{
|
||||
InitializeComponent();
|
||||
}
|
||||
|
||||
private void Form_PLCconnect_Load(object sender, EventArgs e)
|
||||
{
|
||||
// PLC
|
||||
cb_PLCPortName.Text = Form1.f1.HCPLC_client.SerialPort;
|
||||
cb_PLCBaudRate.Text = Form1.f1.HCPLC_client.Baudrate.ToString();
|
||||
if (Form1.f1.HCPLC_client.Connected)
|
||||
{
|
||||
lb_PLCCom_status.Text = "已连接";
|
||||
lb_PLCCom_status.ForeColor = Color.Green;
|
||||
bt_PLCConnect.Enabled = false;
|
||||
cb_PLCPortName.Enabled = false;
|
||||
cb_PLCBaudRate.Enabled = false;
|
||||
}
|
||||
else
|
||||
{
|
||||
lb_PLCCom_status.Text = "未连接";
|
||||
lb_PLCCom_status.ForeColor = Color.Red;
|
||||
bt_PLCConnect.Enabled = true;
|
||||
cb_PLCPortName.Enabled = true;
|
||||
cb_PLCBaudRate.Enabled = true;
|
||||
}
|
||||
}
|
||||
|
||||
// 连接
|
||||
private void bt_PLCConnect_Click(object sender, EventArgs e)
|
||||
{
|
||||
try
|
||||
{
|
||||
if (Form1.f1.HCPLC_client != null && Form1.f1.HCPLC_client.Connected)
|
||||
{
|
||||
lock (Form1.f1.plcLock) // 加锁
|
||||
Form1.f1.HCPLC_client.Disconnect();
|
||||
}
|
||||
|
||||
Form1.f1.HCPLC_client.SerialPort = cb_PLCPortName.Text;
|
||||
Form1.f1.HCPLC_client.Baudrate = Convert.ToInt32(cb_PLCBaudRate.Text); // 波特率
|
||||
Form1.f1.HCPLC_client.Parity = System.IO.Ports.Parity.None; // 无校验
|
||||
Form1.f1.HCPLC_client.StopBits = System.IO.Ports.StopBits.Two; // 停止位
|
||||
|
||||
lock (Form1.f1.plcLock) // 加锁
|
||||
Form1.f1.HCPLC_client.Connect();
|
||||
|
||||
// Form1.f1.PLC_client.Open();
|
||||
if (Form1.f1.HCPLC_client != null && Form1.f1.HCPLC_client.Connected)
|
||||
{
|
||||
lb_PLCCom_status.Text = "已连接";
|
||||
lb_PLCCom_status.ForeColor = Color.Green;
|
||||
cb_PLCPortName.Enabled = false;
|
||||
cb_PLCBaudRate.Enabled = false;
|
||||
bt_PLCConnect.Enabled = false;
|
||||
|
||||
var jsconfig = new JsonConfig("config.json");
|
||||
|
||||
jsconfig.SetValue("PLC_PortName", cb_PLCPortName.Text);
|
||||
jsconfig.SetValue("PLC_BaudRate", cb_PLCBaudRate.Text);
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Console.WriteLine($"PLC连接异常: {ex.Message}");
|
||||
}
|
||||
}
|
||||
// 刷新
|
||||
private void bt_PLCRefresh_Click(object sender, EventArgs e)
|
||||
{
|
||||
cb_PLCPortName.Items.Clear();
|
||||
string[] ports = System.IO.Ports.SerialPort.GetPortNames();
|
||||
cb_PLCPortName.Items.AddRange(ports);
|
||||
}
|
||||
// 断开
|
||||
private void bt_PLCBreak_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (Form1.f1.HCPLC_client.Connected)
|
||||
{
|
||||
lock (Form1.f1.plcLock) // 加锁
|
||||
Form1.f1.HCPLC_client.Disconnect();
|
||||
}
|
||||
lb_PLCCom_status.Text = "未连接";
|
||||
lb_PLCCom_status.ForeColor = Color.Red;
|
||||
cb_PLCPortName.Enabled = true;
|
||||
cb_PLCBaudRate.Enabled = true;
|
||||
bt_PLCConnect.Enabled = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user