搬家第二天-39.Wincc V7.3 模擬飲料灌裝生產線動畫效果(1)-一個瓶子初試


在QQ群聊天時,有人發布了一個懸賞,要求做一個飲料廠罐裝生產線的簡單動畫模擬,要求step7+wincc結合,step7和Wincc變量連接沒什么難度,Wincc動畫效果還沒有認真嘗試過,於是自己試着做了一下,先從簡單的生產線上一次只有一個瓶子的情況做起。

    任務簡介:生產線上有四個工位,分別是起始位、罐裝位、封裝位、終止位,要求四個工位之間移動有移動效果,罐裝和封裝要有動畫效果。

一 准備工作

  1. Wincc變量管理新建一個32位浮點數變量Start,新建一個1280*1024頁面,用多邊形畫一個瓶子,名字修改為bottle,瓶子寬30高110,取消全局顏色方案,使用動態填充,填充顏色為黑色,起始位置(起始工位)left=60,top=600;畫一個長方形蓋子,名字改為cover,寬11高10,蓋子填充綠色(像啤酒瓶蓋),初始位置left=790,top=347,蓋子蓋上的位置left=790,top=591;畫一個機械手,名字修改為robot,初始位置left=150,top=770;畫一條傳送帶,一個原料罐,一根罐裝管;畫一個長方形模擬流出的液體,名字修改為fillin,寬70,高120,默認不可見;畫一個啟動按鈕,一個停止按鈕;畫一個圓用於顯示工作狀態,圓全局顏色方案為否,填充量100,背景顏色根據內部變量Start數值改變,當Start=1為真,綠色,為假,紅色。編輯狀態下各控件如下:

2. 項目計算機屬性啟動項目勾選全局腳本功能

二 新建一個VBS全局動作,觸發器為循環類型,周期1秒,腳本如下:

Option Explicit
Function action
Dim bottle,cover,robot,fillin
Dim Start
Set bottle=HMIRuntime.Screens("1bottle").ScreenItems("bottle")
Set cover=HMIRuntime.Screens("1bottle").ScreenItems("cover")
Set robot=HMIRuntime.Screens("1bottle").ScreenItems("robot")
Set fillin=HMIRuntime.Screens("1bottle").ScreenItems("fillin")
Set Start=HMIRuntime.Tags("Start")
'從最左邊往填充工位移動
If Start.Read =1 And bottle.left<420 Then
  bottle.left=bottle.left+20
End If

'填充液體
If Start.Read =1 And bottle.left=420 And bottle.FillingIndex<90 Then
   fillin.Visible =True
  bottle.FillingIndex=bottle.FillingIndex+10
End If

'從填充工位往封裝工位移動
If Start.Read =1 And bottle.FillingIndex=90 And bottle.left<780 Then
   fillin.Visible=False
  bottle.left=bottle.left+20
End If

'封裝蓋蓋
If Start.Read =1 And bottle.left=780 And cover.top<591 Then
   cover.top=cover.top+122
   cover.left=790
   robot.top=robot.top+122
   robot.left=770
End If

'蓋完蓋子,機械手復位
If cover.top=591 And robot.top>150 Then
'If bottle.left>=780  Then
   robot.top=robot.top-12
   robot.left=770
End If

'瓶子繼續前進
If Start.Read =1 And robot.top<396 And cover.top=591 And bottle.left<1140 Then
  
  bottle.left=bottle.left+20
   cover.left=cover.left+20
End If

'到了最終位,參數回到初始狀態
If Start.Read =1 And bottle.left=1140 Then
   bottle.left=60
   bottle.top=600
   bottle.FillingIndex=0
   cover.left=790
   cover.top=347
End If
End Function

保存后運行,就能看到簡單的動畫效果了,如果希望動作平滑一點,可以把移動步長改小,把觸發器周期改小一點。

一條生產線上往往緊密排列了很多瓶子,下一篇博客將介紹模擬整條生產線的動作制作。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM