国内精品一区二区三区四区视频-国产成人激情视频在线免费看-av中文字幕一区人妻-精精国产XXXX视频第一次

從簡單案例了解PLC編程與上位機程序開發調試

2021/3/22 11:34:43 人評論 次瀏覽 分類:PLC應用  文章地址:http://yigongchang99.com/tech/3660.html

自動化行業,正在慢慢往軟件行業靠近。

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


那么PLC工程師學會PLC編程之后,會是一種什么樣的體驗?
很多人最直接的體驗就是:原理性的東西懂得更多,技術棧更全面,可以自己獨立完成項目評估、制圖、選型、PLC程序開發調試,到上位機開發,甚至于更上層的WEB端、移動端。

言歸正傳,昌暉儀表在本文分享一個工業現場常用的運動控制案例,從硬件選型到程序設計,再從本地調試到上位機開發調試。
這個案例算是一個比較簡單的案例,但是可以有效地將PLC與上位機結合起來,對于初學者來說,是一個比較適合的練手項目。

1、硬件選型

控制器:西門子200Smart PLC,型號為ST20(DC-DC-DC)
驅動器:步進驅動器
電機:42mm步進電機
限位:3個限位開關,分別對應原點、左限位、右限位
平臺:單軸模組
按鈕指示燈:啟動、停止、運行狀態、3個行程開關(模擬完成信號)

2、硬件接線圖

硬件接線圖

3、PLC程序開發

S7-200 Smart PLC運動控制需要使用運動控制向導來實現,核心程序如下:
S7-200 Smart PLC程序



4、上位機程序開發

①I/O表:PLC程序編程中,會預留上位機接口,上位機I/O表如下所示:
上位機I/O表

②界面設計:上位機UI界面設計

上位機UI界面

③功能實現:上位機主要包含實時狀態與數據監控、速度及位置參數設置、系統日志顯示、通信參數設置。

◆實時狀態與數據監控
本案例與西門子PLC之間的通信方式采用S7通信,使用開源通信庫s7.net來實現,基于多線程實現數據的實時采集,并結合實際I/O進行數據解析。
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(() =>
          {
              //這里進行實時狀態更新
              }));
              Thread.Sleep(10);
              }
    }
}

◆速度及位置參數設置

參數設置采用獨立的設置界面,通過窗體傳值來實現。
速度及位置參數設置界面
代碼如下所示:

/// <summary>
/// 設定值
/// </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();
}

◆系統日志顯示

系統日志基于ListView控件開發,實現日志、報警、警告三種不同狀態區別顯示,可同時存儲至數據庫,便于后續追溯。
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);
      }
}

◆通信參數設置

通信參數為系統參數,采用Winform的Settings來進行配置存儲,簡單快捷。界面設計如下所示:
通信參數設置界面
代碼如下所示:

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("請檢查數據格式是否正確","格式錯誤");
        return;
      }
      SaveDefaultSetting(set);
      MessageBox.Show("配置成功,立即生效", "配置成功");
      this.Close();                                                 
}

5、寫在后面

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

共有訪客發表了評論 網友評論

  客戶姓名:
郵箱或QQ:
驗證碼: 看不清楚?
主站蜘蛛池模板: 国产无遮挡裸体免费视频网站| 欧美丰满熟妇欲乱高清视频| 亚洲综合乱色一区二区三区 | 国产一区在线观看麻豆精品| 青草草视频精品视频免费观看| 精品人妻久久久中文字幕| 亚洲精品午夜福利久久| 成人综合午夜一区二区| 黄片在线免费视频观看| 亚洲一区二区三区四区色噜噜| 国产污污网站在线播放| 亚洲熟女乱色一区二区三区| 国产一区二区三区香蕉av| 人妻潮喷中出日韩精品中文字幕| 亚洲熟女少妇免费视频| 男人天堂网av在线播放| 尤物av一区二区三区四区| 一区二区三区乱码在线网址| 人妻中文字幕一二三区| 欧美精品一区二区三区精品久久 | 中文人妻av高清一区二区三区四区| 国产精品夜夜夜久久久| 最新最近av中文字幕| 日韩午夜视频中文字幕| 午夜三级韩国理论av| 欧美黄色精品一区二区| 色资源中文字幕啪啪啪| 青青操偷拍视频第一页| 好看的中文字幕第一页| 人妻久久一区二区蜜桃| 国产草草在线观看视频| 国产精品一区二区高清不卡| 在线观看中文字幕亚洲区| 人妻一区二区三区中文| 成人欧美一区二区三区白| 欧美日韩午夜激情在线| 日韩中文字幕在线播放视频| 激情五月国产综合自拍| 日韩性视频日韩性视频| 亚洲中文字幕一区二区乱码| 成人粉嫩av一区二区|