国产一区二区三区毛片_亚洲乱码AV中文一区二区_亚洲精品无码专区在线播放_日韩欧美一二_咪咪av影院_欧久久av一区二区

nos001
級別: 探索解密
精華主題: 0
發帖數量: 54 個
工控威望: 110 點
下載積分: 814 分
在線時間: 42(小時)
注冊時間: 2018-03-31
最后登錄: 2022-10-06
查看nos001的 主題 / 回貼
樓主  發表于: 2019-06-27 16:21
圖片:
找不到st編程的教程,硬是自己摸索,一點一點摳出來的。
后來發現iQ-R 結構化文本(ST)編程指南就是教程,關于語法、其他手冊上找不到的較難理解的結構變量都有示例。
完全st編程的中斷寫法好幾天無從著手,把FXCPU結構化順序指令篇看了一遍又一遍,才摸索出來,具體見工程附件。
工程是未完成的不完整工程,只是希望自己認為較難理解手冊沒提及的st編程方法對需要的同志有所幫助。

另外吐槽一下st編輯器,變量不能在程序里定義,只能在標簽窗口定義,結構體成員引用不能單獨設置字體顏色,這些都影響閱讀。
總之,gx works2 的st編輯器比較簡陋,但可閱讀性已經比梯形圖好多了。

復制代碼
  1. (*****************************************************************************************************
  2. * 程序“恒定掃描”設置
  3. * M8039 = TRUE, 則程序為恒定周期掃描
  4. * D8039 = 掃描周期, 單位為ms,最小恒定掃描周期為1ms
  5. *****************************************************************************************************)
  6. M8039 := TRUE;
  7. IF M8039 THEN
  8.     D8039 := 5;
  9. END_IF;
  10. (*****************************************************************************************************
  11. * 初始化
  12. *****************************************************************************************************)
  13. EI ( TRUE );        (* 允許中斷 *)
  14. IF M8002 THEN
  15.     
  16.     FOR j := 0 TO 30 BY 1 DO        
  17.         Tcnt[j] := -1;        
  18.     END_FOR;
  19.     RST( TRUE, HmiKey_ManualOP );
  20.     RST( TRUE, bMode_Manual );
  21.     RST( TRUE, HmiKey_AutoPack );
  22.     RST( TRUE, bMode_Auto );
  23.     DownFill_FB_Call( );
  24.     VerticalSeal_FB_Call( );          
  25.     BagFold_FB_Call( );
  26.     
  27. END_IF;
  28. (* 每包包裝時間所需計數值 = 60000ms / 10ms / 預置包裝速度,每分鐘為60000ms,定時器為10ms *)
  29. TVal_Packing :=  6000 / Param_PresetSpeed;
  30. (*****************************************************************************************************
  31. * 清零
  32. *****************************************************************************************************)
  33. IF( HmiKey_BagCnt_CLR ) THEN
  34.     MakeBagCnt := 0;
  35. END_IF;
  36. IF( HmiKey_PackingCnt_CLR ) THEN
  37.     PackingCnt := 0;
  38. END_IF;    
  39. (*****************************************************************************************************
  40. * 警報發生
  41. * 報警鎖,任何一種警報發生,自動包裝都將停止運行
  42. ****************************************************************************************************)
  43. IF( bAlarm_Lock_AutoPack = TRUE ) THEN
  44.     
  45.     ZRST( TRUE, Y001, Y007 );
  46.     ZRST( TRUE, Y010, Y017 );
  47.     ZRST( TRUE, Y020, Y027 );    
  48.             
  49.     FOR j := 0 TO 30 BY 1  DO        
  50.         Tcnt[j] := -1;        
  51.     END_FOR;    
  52.     
  53. END_IF;
  54. (*****************************************************************************************************
  55. * HMI按鈕開關
  56. *****************************************************************************************************)
  57. Key_Hmi_FB_Call();
  58. (*****************************************************************************************************
  59. * 包裝流程
  60. *
  61. *****************************************************************************************************)
  62. IF( bMode_Auto ) AND ( bAlarm_Lock_AutoPack = FALSE ) AND ( HmiKey_FillPack[1]  OR  HmiKey_EmptyBagTest[1]  OR  HmiKey_FillBagOne[1] ) THEN
  63.     
  64.     IF( HmiKey_FillPack[1]  ) THEN
  65.         DownFill_FB_Call( hmi_key := KeyDownID,  pT_DownFillDly := Tcnt[ ID_DOWN_FILL_DLY ],   iX := iX_DownFill ); (* 下料 *)
  66.     END_IF;
  67.         
  68.     IF( HmiKey_EmptyBagTest[1]  OR  HmiKey_FillBagOne[1] ) THEN
  69.         
  70.         IF( PackingFlow = 0 ) THEN  
  71.                       
  72.             SET( TRUE, bEnd_DownFill );
  73.             PackingFlow := FLOW_PULL_FILM;
  74.                         
  75.         END_IF;
  76.         
  77.     END_IF;
  78.     VerticalSeal_FB_Call( bEnable := bServo_End );    (* 縱封 *)        
  79.     
  80.     BagFold_FB_Call( bEnable:= bServo_End );          (* 折角 *)
  81.     
  82.     ServoControl_FB_Call( pServoEnd := bServo_End  ); (* 伺服拉膜;指針參數,指向全局變量 *)
  83.     
  84.     (* 真空箱閉合 *)
  85.     IF( bServo_End = TRUE ) THEN
  86.         
  87.         IF( Tcnt[ ID_VACUUM_BOX_CLOSE_DLY ] = -1 ) THEN    
  88.             Tcnt[ ID_VACUUM_BOX_CLOSE_DLY ] := Param_VcmBoxCloseDly ;    
  89.         END_IF;
  90.         
  91.         IF( Tcnt[ ID_VACUUM_BOX_CLOSE_DLY ] = 0 )  AND ( bAlarm_GlassDoor = FALSE ) THEN
  92.             
  93.             Tcnt[ ID_VACUUM_BOX_CLOSE_DLY ] := -255;
  94.             Tcnt[ ID_BAG_CUT_DLY ] := Param_CutDly;
  95.             SET( TRUE, Y_VacuumBox_Y3 );            
  96.             
  97.         END_IF;      
  98.           
  99.     END_IF;
  100.     (* 剪切包裝膜 *)
  101.     IF( Y_VacuumBox_Y3 ) THEN
  102.         
  103.         IF( Tcnt[ ID_BAG_CUT_DLY ]  = 0 ) AND ( bAlarm_GlassDoor = FALSE ) THEN
  104.             
  105.             Tcnt[ ID_BAG_CUT_DLY ] := -255;
  106.             Tcnt[ ID_BAG_CUT ] := Param_Cut;
  107.             SET( TRUE, Y_Cutter_Print_cylinder );          
  108.             
  109.         END_IF;    
  110.         
  111.         IF( Tcnt[ ID_BAG_CUT ]  = 0 ) THEN
  112.             
  113.             Tcnt[ ID_BAG_CUT ] := -255;
  114.             Tcnt[ ID_VACUUMIZE ] := Param_Vacuum;
  115.             RST( TRUE, Y_Cutter_Print_cylinder );
  116.             SET( TRUE, Y_VacuumPump_Y5 );
  117.             SET( TRUE, Y_Vacuum_cylinder );
  118.             
  119.         END_IF;    
  120.               
  121.     END_IF;
  122.     (* 包裝袋抽真空、封口,恒溫,冷卻 *)
  123.     IF( Tcnt[ ID_VACUUMIZE ] = 0 ) THEN           (* 抽真空 *)
  124.         
  125.         Tcnt[ ID_VACUUMIZE ] := -255;
  126.         Tcnt[ ID_HEAT_SEAL ] := Param_HeatSeal;
  127.         SET( TRUE, Y_HoriSeal_cylinder );
  128.         
  129.     END_IF;
  130.     
  131.     IF( Tcnt[ ID_HEAT_SEAL ] = 0 ) THEN           (* 熱封 *)
  132.         Tcnt[ ID_HEAT_SEAL ] := -255;
  133.         Tcnt[ ID_SEAL_KEEP ] := Param_SealKeep;
  134.         RST( TRUE, Y_HoriSeal_cylinder );
  135.     END_IF;
  136.     
  137.     IF( Tcnt[ ID_SEAL_KEEP ] = 0 ) THEN           (* 恒溫保持 *)
  138.         Tcnt[ ID_SEAL_KEEP ] := -255;
  139.         Tcnt[ID_SEAL_COOL ] := Param_SealCool;
  140.         SET( TRUE, Y_AirIn_cylinder );
  141.     END_IF;
  142.     
  143.     IF( Tcnt[ID_SEAL_COOL ] = 0 ) THEN            (* 冷卻等待 *)
  144.         RST( TRUE, Y_VacuumBox_Y3 );
  145.         RST( TRUE, Y_Vacuum_cylinder );
  146.         RST( TRUE, Y_AirIn_cylinder );
  147.         PackingFlow := FLOW_END;
  148.     END_IF;
  149.     
  150.     (* 每分鐘為60000ms,程序掃描周期為5ms,每分鐘的計數值為60000 / 5 = 12000 *)
  151.     IF( Cnt < 11999 ) THEN
  152.         Cnt := Cnt + 1;
  153.     END_IF;
  154.         
  155.     IF( PackingFlow = FLOW_END  ) AND ( HmiKey_FillPack[1]  ) THEN
  156.     
  157.         MakeBagCnt := MakeBagCnt + 1;             (* 制袋計數 *)
  158.         PackingCnt := PackingCnt + 1;             (* 包裝計數 *)
  159.         PackingSpeed := 12000 / Cnt;              (* 包裝速度計算 *)
  160.         Cnt := 0;
  161.         
  162.     END_IF;
  163.     
  164.     IF( PackingFlow = FLOW_END ) AND ( HmiKey_EmptyBagTest[1]  OR  HmiKey_FillBagOne[1] )  THEN
  165.         
  166.         MakeBagCnt := MakeBagCnt + 1;             (* 制袋計數 *)
  167.         PackingSpeed := 12000 / Cnt;
  168.         Cnt := 0;
  169.                 
  170.     END_IF;
  171.     (* 包裝流程結束,復位定時器、伺服結束標志、制袋一個按鈕 *)
  172.     IF( PackingFlow = FLOW_END  ) THEN  
  173.         
  174.         PackingFlow := 0;
  175.         RST( TRUE, bServo_End );
  176.         RST( TRUE, HmiKey_FillBagOne[0] );
  177.         FOR j := 0 TO 30 BY 1 DO
  178.             Tcnt[j] := -1;
  179.         END_FOR;
  180.               
  181.     END_IF;
  182.                 
  183. END_IF;
  184. (*****************************************************************************************************
  185. * 包裝膜卷棍電機控制
  186. *
  187. * 說明:接近開關的感應體是一個自由落體的金屬橫桿,由包裝膜拉動其上下運動表示包裝膜的松緊。
  188. *       感應體運動到頂部,頂部金屬感應開關動作,說明包裝膜被拉緊,包裝膜卷棍電機運轉送膜;
  189. *       感應體運動到中部,中部金屬感應開關動作,說明送膜已經足夠,停止送膜;
  190. *       感應體運動到底部,底部金屬感應開關動作,說明接近開關的感應體已經沒有包裝膜拉動其運動,
  191. *       或者送膜太多,感應體自由落體到底部
  192. ****************************************************************************************************)
  193. IF bMode_Auto THEN
  194.     
  195.     IF( ix_PackFilm_SensorTop  ) THEN
  196.         
  197.         SET( TRUE, Y_FilmMotor_Y13 ); (* 送膜 *)
  198.         
  199.     ELSIF( ix_PackFilm_SensorMid OR ix_PackFilm_SensorBot )  THEN
  200.         
  201.         RST( TRUE, Y_FilmMotor_Y13 ); (* 送膜停止 *)
  202.         
  203.     END_IF;  
  204.     
  205. END_IF;
  206. (* 手動控制,放膜 *)
  207. IF HmiKey_ManualOP THEN
  208.     
  209.     IF( HMI手動_放膜 ) THEN
  210.         
  211.         SET( TRUE, Y_FilmMotor_Y13 ); (* 手動送膜 *)
  212.         
  213.     ELSE  
  214.         
  215.         RST( TRUE, Y_FilmMotor_Y13 );    
  216.         
  217.     END_IF;
  218.     
  219. END_IF;
[ 此帖被nos001在2019-07-04 17:38重新編輯 ]
附件: 結構化文本(ST)編程指南-1802.pdf (1477 K) 下載次數:942
網站提示: 請不要用迅雷下載附件,容易出錯
附件: 顆粒包裝機v1.0_ST.gxw.rar (180 K) 下載次數:756
網站提示: 請不要用迅雷下載附件,容易出錯
本帖最近評分記錄:
  • 下載積分:+1(gk1234) 感謝分享!
  • 下載積分:+1(lizhendong) 感謝分享!
  • 下載積分:+1(xn0220xn) 真誠感謝!
  • 下載積分:+1(chihung) 感謝分享!
  • 下載積分:+5(吳工2014)
  • 下載積分:+1(zhcdb2671) 真誠感謝!
  • 下載積分:+3(heidelberg5) 好貼好貼!
    nos001
    級別: 探索解密
    精華主題: 0
    發帖數量: 54 個
    工控威望: 110 點
    下載積分: 814 分
    在線時間: 42(小時)
    注冊時間: 2018-03-31
    最后登錄: 2022-10-06
    查看nos001的 主題 / 回貼
    1樓  發表于: 2019-06-27 19:32
    引用
    引用第1樓楓落云端于2019-06-27 17:11發表的  :
    ------------------------

    樓主神人,把輸出語句改寫了。我說奇怪呢,明明我程序不是這樣啊,原來是改寫了。
    不過我不喜歡軟件自帶的指令,盡量以C語言的格式來寫,方便閱讀。
    nos001
    級別: 探索解密
    精華主題: 0
    發帖數量: 54 個
    工控威望: 110 點
    下載積分: 814 分
    在線時間: 42(小時)
    注冊時間: 2018-03-31
    最后登錄: 2022-10-06
    查看nos001的 主題 / 回貼
    2樓  發表于: 2019-06-28 16:32
    引用
    引用第4樓兩只橙于2019-06-28 10:06發表的  :
    全是if else...而且還中英混搭,何必呢

    混搭標簽容易辨識,就是寫的時候難受。
    軟件自帶的指令與函數,邏輯開關寫成一長串,怎么閱讀啊。
    寫單片機程序習慣了,所以只用SET、RST這樣簡單的指令,主要便于閱讀。
    nos001
    級別: 探索解密
    精華主題: 0
    發帖數量: 54 個
    工控威望: 110 點
    下載積分: 814 分
    在線時間: 42(小時)
    注冊時間: 2018-03-31
    最后登錄: 2022-10-06
    查看nos001的 主題 / 回貼
    3樓  發表于: 2019-06-28 17:00
    引用
    引用第3樓楓落云端于2019-06-28 09:38發表的  :
    只是看起來一個指令解決的事情非得寫一IF ELSE,而且還出現雙線圈提示。個人習慣

    層主是大神。
    OUT指令其實是照搬梯形圖,優點是簡潔。但一旦控制邏輯復雜,那讀起來真是頭暈眼花。
    用條件語句來寫的缺點就是條件為非時,線圈不能像OUT指令那樣跟隨條件變化,而要多出ELSE語句,是照搬單片機的C語言寫法。
    兩種寫法可謂各有優缺點。
    至于雙線圈警告,可以在選項設置里勾選“SET指令不是雙線圈的檢查對象”。

    主站蜘蛛池模板: h精品在线_中国少妇毛茸茸高潮_亚洲中字幕女_蜜桃精品免费久久久久影院_在线免费观看av不卡_最新看片_呻吟求饶的办公室人妻_亚洲狠狠入 | 日韩三级一区二区_一级黄色性视频_在线成人观看_caoporm超碰_日本天堂在线_久久爱._4虎免费观看影片_a级片网站 | 久草色香蕉_色原网九区_影视在线观看免费观看_国内精品视频在线观看免费网站_午夜爱爱免费视频_国产福利久久久_欧美老肥妇做爰bbww_日本三级欧美三级人妇视频黑白 | 国产精品色婷婷亚洲综合看片_日本熟日本熟妇在线视频_一级片的网址_亚洲无人区一卡2卡三卡_青草青草视频2免费观看_欧美亚洲国产片在线播放_老女老肥熟国产在线视频_亚洲精品xxxxx | sxeoquenetv另类重口_日本视频网址_日韩成人在线一区_综合狠狠开心_91久久高清国语自产拍_久草在线免费资源站_国产精品亚洲专区无码不卡_欧洲美熟女乱又伦av影片 | 国产亚洲精品无码拍拍拍色欲_国产成年视频_永久免费的网站_韩国禁欲贪婪之岛中文版_一级片免费在线_国产一级影片_欧美日韩亚洲国产综合乱_日韩在线视频网 | 亚洲激情综合视频_一本之道加勒比在线观看_丰满的年轻搜子在线观看_亚洲国产成人精品女人_精品国产aⅴ一区二区三区_久久777国产线看观看精品_成人a级免费视频_av天天干 | 亚洲AV无码乱码精品国产_日韩亚射吧_四虎影视国产精品久久_最近好看中文字幕日产_欧美jjzz_精品无码人妻一区二区免费蜜桃_xxxx69在线观看_青草草在线视频 | 蜜臀网站_男女无遮挡在线观看_欧美一二三四成人免费视频_成年人网站黄_亚洲国产视频一区_白色欧美精品在线播放_亚洲级αV无码毛片久久精品_亚洲精品黄色片 | 国产精品超清白人精品AV_日韩精品一区二区三区视频播放_中文字幕综合在线_亚洲色婷婷一区二区三区_激情欧美成人久久综合_国产原创AV网站_毛片a级_在线亚洲美日韩 | 久久久片_制服丝袜人妻有码无码中文字幕_少妇被三个黑人调教_淫片免费看_亚洲国产呦萝小初_免费看成人av_国产美女爽到喷水_嫩草福利视频精品一区二区三区 | 成人无码视频在线观看网站_快色91_国产欧美日韩一区二区三区在线_在线看黄色_极品销魂美女一区二区_无码成人一区二区三区_videos日本多毛hd护士_人妻互换HD无码中文在线 | 午夜成熟看A级毛片_大地资源中文在线观看免费版高清_亚洲色偷精品一区二区三区_夜夜天天操_国产爆乳成AV人在线播放_两性色午夜免费视频_国产美女91呻吟求_av免费看网站 | 国产00高中生在线无套进入_免费A级毛片18禁网站_91超级碰_欧美69视频在线观看_欧美日韩一区二区视频在线观看_亚洲自拍偷拍免费视频_欧美精品播放_国产一区二区三区麻豆 | 国产亚洲精品久久19p_肉人妻丰满av无码久久不卡_色综合久久久久久久粉嫩_好男人www在线社区_深夜A级毛片免费无码视频_久久91精品_精品国产91aⅴ一区二区三区_国产精品永久免费 | 女人爽到喷水的视频大全_亚洲视频一二三_亚州五月_免费大片av_国产精品无码一区二区三区观看_日韩高清在线观看不卡一区二区_片多多影视剧免费观看在线观看_91在线婚闹无删减 | 在线高清无码A._国产白丝喷水视频在线观看_成人一二三区视频_婷婷丁香五月亚洲中文字幕_亚洲成色最大综合在线_亚洲天堂欧美在线_黄色片下_粗大的内捧猛烈进出少妇 | 99r在线播放_欧美成人高清在线_a级黄色网_亚洲一二三av_国产精品日本亚洲欧美_日本a级在线_粉嫩精品av久久久久久久_aaaaa级少妇高潮大片 | 18av在线播放_999亚洲国产996395_久久视讯_国产精品久久久久久99_欧美性19_欧美亚洲韩国国产综合五月天_玩弄CHANEL妇熟女_起碰免费公开97在线视频 | 中文字幕精品A片不卡一卡二_好吊精品_97日日日_又粗又深又猛又爽的视频A片_国产精品3区_久久爱www久久做_少妇人妻AV无码专区_麻豆国产AV丝袜白领传媒 | 俺也去俺来也www色官网_国产精品久久久久激情影院_小荡货好紧好爽奶头大视频_亚洲免费精品一区_欧美群妇大交乱视_国产一区视频播放_一区二区三区四区欧美日韩_亚洲欧美日韩系列中文字幕 | 99国产精品99久久久久久娜娜_飘雪影院在线观看免费版_久草播放_亚洲1区在线_特黄av_欧美日韩成人_蜜臀AV色欲无码A片一区_h动漫在线视频 | 国产成人精品aa毛片_亚洲欧美日韩综合一区_久久久久久曰本av免费免费_精品国产V无码大片在线观看_99视频中文字幕_www免费视频_美女末成年视频黄是免费网址_91chinese老女人 | 无码乱肉视频免费大全合集_caoporn超碰97_搡老熟女vⅰdeos_少妇高潮喷水正在播放_免费在线观看色_人妻精品动漫H无码网站_国产91在线播放精品_免费中文字幕在线 | 亚洲激情91_久久久久高潮综合影院_妓女av导航福利_把女邻居弄到潮喷的性经历_国产人成免费视频_国产亚洲成AⅤ人片在线观看不卡_日本免费a级片_亚洲人人在线 | 五十路亲子中出在线观看_极品少妇高潮到爽_狠狠干夜夜操天天爽_日韩网站免费观看_天天躁日日躁狠狠久久_免费播放一区_刺激cijilu福利区在线观看_国产区更新 | 亚洲国产成人av_91干干_色欲AV无码无在线观看_2018高清一道国产_亚洲综合日韩a无码毛片_欧美高清精品一区二区_五月丁香激激情亚洲综合_国产精品情侣 | 日韩经典精品无码一区_亚洲www色_久久99久久精品久久久久久_色偷偷888欧美精品久久久_日韩成人无码一区二区三区_国产99re_国产综合影院_一区二区三区免费视频观看 | 美女总裁的贴身保镖短剧_在线日韩在线_1区2区在线_永久免费高清av_seseavlu视频在线_另类国产_国产一区美女视频_老司机精品福利视频 | 兔子先生节目在线观看_gogogo高清在线播放韩国_林ゆな中文字幕一区二区_91精品国产91久久久久久不卡_一二三四影视在线观看免费视频_91亚洲日本aⅴ精品一区二区_成人在线午夜视频_国产在线一区二区三区在线观看 | 日本成熟少妇a片免费观看_精品嫩模福利一区二区蜜臀_www.久久爱69.com_国产亚洲AV在线_国产亚av手机在线观看_精品一级视频_黄色一级毛片a_欧美大胆a视频 | 91成人在线_成人无码在线视频网站_131MM少妇做爰视频_精品国产乱码久久久久久虫虫_免费国产_国产一级淫片在线观看_在线字幕_欧美久久人人网 | 国产成人无码精品午夜福利A_日本熟妇HD人妻_国产成年无码a∨片在线韩国_秋霞福利_午夜精品91_AA片子吇中文字处女_欧美夜噜噜免费观看_国产精品青青草原免费无码 | 一本二卡三卡四卡乱码娱乐网_亚洲av无码成人影院一区_在线观看成人一区_海角国产精品_欧美成人vps_精品视频在线观自拍自拍_亚洲视频网址_超碰caoporen国产 | 搞笑一家人韩剧韩语在线看_中文字幕mv在线观看_蜜桃视频在线播放_懂色av一区二区夜夜嗨_夜夜夜网站_欧美性群另类交_久久免费视频网站_亚洲欧美日韩国产精品专区 | 天堂网中文_国产丰满乱子伦无码专_91插插插影_国产精品乱码高清在线观看_国内av免费看_精品无码免费专区毛片_国产露脸无码a区久久蘑菇_国产美女二区 | 亚洲aⅴ无码专区在线观看_精品福利网站_午夜影院c绿象_中文字幕十区_久久综合日本_久久网站免费视频_国产免费一区视频_欧美成年人视频 | 久久99精品久久_66亚洲丁香婷婷综合久久_日本精品久久久久中文字幕乱中年_少妇无码AV无码专区_男女啪啪永久免费观看网站_国产精品久久久久野外_欧美国产韩a在线视频_天海翼一区二区三区高清在线 | 国产精品福利免费_亚洲精品无码成久久不卡_欧美黄色大片在线观看_国产色拍_又色又爽又黄又免费的照片_黑人边吃奶边摸边做边爱_精品免费av一区二区三区_久久综合亚洲精品 | 黄色免费观看_在线欧美国产_日日躁夜躁aaaaxxxx_老师露出两个奶球让我吃奶头_aa国产_高清freexxxx性国产意思_午夜射精日本三级_夜夜爽欧美肥妇xxxx | 午夜一区二区三区视频_成年人一级视频_亚洲区自拍区_日韩欧美一二区_青娱乐在线视频播放_国产成人综合亚洲欧美94在线_亚洲综合无码一区二区三区_亚洲精品亚洲人成人网在线播放 |