C#编写上位机界面
工具 VS2019博图 V16 (300PLC) 语言c#界面功能:通讯 ,读写,简单加了一曲线图。
关于:PID整定(机缘巧合下一个学弟要做个小项目,我就试了试,比较简单后期慢慢更新。)
没有实物(实物太贵现阶段是没办法直棱起来的)只能做测试用。(有大佬有实物的的话可以帮忙做测试,小弟在此先谢过了。)
付百度云连接:链接: https://pan.baidu.com/s/16qA8WFRfLG8n3Vay9S37rQ 提取码: tfpt
百度云链接: 提取码: tfpt
付部分程序:
#region 初始化
public Form1()
{
InitializeComponent();
CheckForIllegalCrossThreadCalls = false;
this.realTime.Text = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
timerClock.Start();
this.buttonConnect.Enabled = false;
this.buttonDisconnect.Enabled = false;
this.groupBox2.Enabled = false;
this.groupBox3.Enabled = false;
}
//界面初始化
private void Form1_Load(object sender, EventArgs e)
{
this.comboBoxPLCType.SelectedIndex = -1;
}
//初始化图表
private void userCurve1_Load(object sender, EventArgs e)
{
userCurve1.SetLeftCurve("A", new float, Color.Tomato);
userCurve1.SetLeftCurve("B", new float, Color.Blue);
}
//时钟
private void timerClock_Tick(object sender, EventArgs e)
{
this.realTime.Text = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
}
#endregion
#region 事件
//连接按钮
private void buttonConnect_Click(object sender, EventArgs e)
{
RequiredFieldValidator();
try
{
if (siemensPLCSelected != SiemensPLCS.S200Smart)
{
siemensTcpNet.Rack = byte.Parse(this.textBoxRack.Text);
siemensTcpNet.Slot = byte.Parse(this.textBoxSlot.Text);
}
OperateResult connect = siemensTcpNet.ConnectServer();
if (connect.IsSuccess)
{
this.connectTips.Text = "设备连接成功:已连接至IP:"
+ this.textBoxPLCIP.Text.Trim() + "的"
+ this.comboBoxPLCType.Text.Trim()
+ "PLC设备";
this.connectTips.ForeColor = Color.Green;
Connect_Load();
}
else
{
this.connectTips.Text = "设备连接失败:未连接至IP:"
+ this.textBoxPLCIP.Text.Trim() + "的"
+ this.comboBoxPLCType.Text.Trim()
+ "PLC设备";
this.connectTips.ForeColor = Color.Red;
}
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString(), "警告", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
//连接初始化
private void Connect_Load()
{
//界面使能
this.groupBox2.Enabled = true;
this.groupBox3.Enabled = true;
this.buttonDisconnect.Enabled = true;
this.buttonConnect.Enabled = false;
//创建线程
th = new Thread(DataRefresh);
th.IsBackground = true;
th.Start();
//计数时钟
countTimer.Start();
}
//断开连接
private void buttonDisconnect_Click(object sender, EventArgs e)
{
OperateResult ConnectClose = siemensTcpNet.ConnectClose();
if (ConnectClose.IsSuccess)
{
//连接使能,断开关闭
buttonConnect.Enabled = true;
buttonDisconnect.Enabled = false;
this.groupBox2.Enabled = false;
this.groupBox3.Enabled = false;
//提示字符串
this.connectTips.Text = "设备已断开连接";
this.connectTips.ForeColor = Color.Red;
//计数时钟
countTimer.Stop();
//线程
th.Abort();
}
}
#endregion xzn107 发表于 2020-5-9 13:31
拿博图的仿真测试就行了哦,模拟测试可以的哈,楼主的HslCommunication.dll是哪搞来的啊
这个主要是测试通讯的,这个.dll也是网上找到的。连接仿真器时中间还有一个软件这样才能建立起来PLC与上位机的通讯。 sbhd516 发表于 2020-5-10 21:26
HSL 已经拿了专利了。 这样搞不太好。我用S7NET 做 ,一样可以
但是这个是开源的呀,vs自带的s7.net也是可以的。 vrvree 发表于 2020-5-8 11:16
用心讨论,共获提升!
一起进步 东西不错,学习下 bsjasd 发表于 2020-5-8 12:15
东西不错,学习下
请指教,我也是新手。 你好请问使用这个plcsim 软件就可以读到plc的值了吗 支持一下,正在学习这方面知识 人云亦云 发表于 2020-5-8 22:06
支持一下,正在学习这方面知识
一起学习。 这个代码还要实物测试喔,的确有难度呢 拿博图的仿真测试就行了哦,模拟测试可以的哈,楼主的HslCommunication.dll是哪搞来的啊:eee
页:
[1]
2