无码av一区二区三区无码,在线观看老湿视频福利,日韩经典三级片,成 人色 网 站 欧美大片在线观看

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

PLC工程師學(xué)會編程,是一種什么樣的體驗?

2021-04-07 09:29 作者:付工上位機實戰(zhàn)  | 我要投稿

自動化行業(yè),正在慢慢往軟件行業(yè)靠近。

很多PLC工程師也開始慢慢意識到,掌握一門編程語言,變得越來越重要。

那么PLC工程師學(xué)會編程之后,會是一種什么樣的體驗?

我覺得最直接的體驗就是:原理性的東西懂得更多,技術(shù)棧更全面,可以自己獨立完成項目評估、制圖、選型、PLC程序開發(fā)調(diào)試,到上位機開發(fā),甚至于更上層的WEB端、移動端。

言歸正傳,本文主要是分享一個工業(yè)現(xiàn)場常用的運動控制案例,從硬件選型到程序設(shè)計,再從本地調(diào)試到上位機開發(fā)調(diào)試。

首先看下最終實現(xiàn)的效果:



這個案例算是一個比較簡單的案例,但是可以有效地將PLC與上位機結(jié)合起來,對于初學(xué)者來說,是一個比較適合的練手項目。

1、硬件選型

控制器:西門子200Smart PLC,型號為ST20(DC-DC-DC)

驅(qū)動器:步進驅(qū)動器

電機:42mm步進電機

限位:3個限位開關(guān),分別對應(yīng)原點、左限位、右限位

平臺:單軸模組

按鈕指示燈:啟動、停止、運行狀態(tài)、3個行程開關(guān)(模擬完成信號)

2、硬件接線圖



3、PLC程序開發(fā)

S7-200 Smart PLC運動控制需要使用運動控制向?qū)韺崿F(xiàn),核心程序如下:



4、上位機程序開發(fā)

(1)I/O表:PLC程序編程中,會預(yù)留上位機接口,上位機I/O表如下所示:


(2)界面設(shè)計:上位機UI界面設(shè)計



(3)功能實現(xiàn):上位機主要包含實時狀態(tài)與數(shù)據(jù)監(jiān)控、速度及位置參數(shù)設(shè)置、系統(tǒng)日志顯示、通信參數(shù)設(shè)置。

  • 實時狀態(tài)與數(shù)據(jù)監(jiān)控

本案例與西門子PLC之間的通信方式采用S7通信,使用開源通信庫s7.net來實現(xiàn),基于多線程實現(xiàn)數(shù)據(jù)的實時采集,并結(jié)合實際I/O進行數(shù)據(jù)解析。

private void PLCCommunication()
{
while (!cts.IsCancellationRequested)
{
byte[] result = plc.ReadBytes(StoreType.DataBlock, 1, 0, 23);

if (result != null && result.Length == 23)
{
this.BeginInvoke(new Action(() =>
{
//這里進行實時狀態(tài)更新
}));

Thread.Sleep(10);
}
}
}

  • 速度及位置參數(shù)設(shè)置

參數(shù)設(shè)置采用獨立的設(shè)置界面,通過窗體傳值來實現(xiàn)。


代碼如下所示:

/// <summary>
/// 設(shè)定值
/// </summary>
public string setValue = string.Empty;
private void btn_Set_Click(object sender, EventArgs e)
{
this.setValue = this.txt_SetValue.Text;
this.DialogResult = DialogResult.OK;
this.Close();
}

  • 系統(tǒng)日志顯示

系統(tǒng)日志基于ListView控件開發(fā),實現(xiàn)日志、報警、警告三種不同狀態(tài)區(qū)別顯示,可同時存儲至數(shù)據(jù)庫,便于后續(xù)追溯。

private string CurrentTime
{
get { return DateTime.Now.ToString("HH:mm:ss"); }
}
//寫入日志
private void AddLog(int index, string log)
{
if (this.lstInfo.InvokeRequired)
{
this.lstInfo.Invoke(new Action(() =>
{
ListViewItem lst = new ListViewItem(" " + CurrentTime, index);
lst.SubItems.Add(log);
this.lstInfo.Items.Insert(0, lst);
}));
}
else
{
ListViewItem lst = new ListViewItem(" " + CurrentTime, index);
lst.SubItems.Add(log);
this.lstInfo.Items.Insert(0, lst);
}
}

  • 通信參數(shù)設(shè)置

通信參數(shù)為系統(tǒng)參數(shù),采用Winform的Settings來進行配置存儲,簡單快捷。

界面設(shè)計如下所示:



代碼如下所示:

public SaveDefaultSettingDelegate SaveDefaultSetting;
private void btn_Set_Click(object sender, EventArgs e)
{
CommSet set = new CommSet();
try
{
set.IPAddress = this.txt_IPAddress.Text;
set.CPUType = this.cmb_CPUType.Text;
set.StoreTime = Convert.ToInt32(this.txt_StoreTime.Text);
set.AutoStore = this.chk_AutoStore.Checked;
}
catch (Exception)
{
MessageBox.Show("請檢查數(shù)據(jù)格式是否正確","格式錯誤");
return;
}
SaveDefaultSetting(set);
MessageBox.Show("配置成功,立即生效", "配置成功");
this.Close();
}

5、寫在后面

近幾年, 隨著越來越多的設(shè)備開始加入IIoT 網(wǎng)絡(luò)(Industrial Internet of Things,工業(yè)物聯(lián)網(wǎng)簡稱IIoT),IT與OT之間的界限將逐漸消失,直到成為一個或相同的系統(tǒng)為止。

所以,越來越多的電氣工程師開始轉(zhuǎn)型上位機開發(fā)。因為在已有電氣技能的基礎(chǔ)上,如果掌握了上位機開發(fā)技能,薪資達到20K,甚至30K,都會變得更容易。


PLC工程師學(xué)會編程,是一種什么樣的體驗?的評論 (共 條)

分享到微博請遵守國家法律
博白县| 集贤县| 临高县| 田阳县| 若尔盖县| 辉县市| 石家庄市| 双鸭山市| 石台县| 云阳县| 五峰| 广西| 永寿县| 甘孜| 元氏县| 卢龙县| 金平| 宁晋县| 土默特右旗| 威海市| 安阳县| 盐源县| 靖宇县| 金寨县| 日照市| 涿州市| 永昌县| 江达县| 榕江县| 吉隆县| 略阳县| 台州市| 观塘区| 增城市| 涿鹿县| 无为县| 横山县| 龙山县| 元朗区| 丹凤县| 淮南市|