dgl4245123
非標(biāo)自動(dòng)化編程設(shè)計(jì)。。。17798956193
級(jí)別: 探索解密
精華主題: 0
發(fā)帖數(shù)量: 148 個(gè)
工控威望: 183 點(diǎn)
下載積分: 4979 分
在線時(shí)間: 104(小時(shí))
注冊(cè)時(shí)間: 2023-04-03
最后登錄: 2024-12-12
查看dgl4245123的 主題 / 回貼
樓主  發(fā)表于: 2024-04-09 15:34
圖片:
不要噴我,大部分人都搞不定。!
非標(biāo)自動(dòng)化編程設(shè)計(jì)。。。17798956193
es_ice
級(jí)別: 探索解密
精華主題: 0
發(fā)帖數(shù)量: 96 個(gè)
工控威望: 124 點(diǎn)
下載積分: 1210 分
在線時(shí)間: 59(小時(shí))
注冊(cè)時(shí)間: 2023-08-07
最后登錄: 2024-12-22
查看es_ice的 主題 / 回貼
1樓  發(fā)表于: 2024-07-23 08:52
效果:
  


源碼:
復(fù)制代碼
  1. PROGRAM PLC_PRG
  2. VAR_INPUT
  3. 取料順序IN: INT:=1230;//每位數(shù)字小于等于3;
  4. 光柵: ARRAY[1..3] OF BOOL;
  5. 復(fù)位按鈕:BOOL;
  6. END_VAR
  7. VAR_OUTPUT
  8. 指示燈: ARRAY[1..3] OF BOOL;
  9. 報(bào)警:BOOL;
  10. END_VAR
  11. VAR
  12. 順序: ARRAY[1..4] OF INT;
  13. 順序tmp:INT:=0;
  14. 位置tmp:INT:=0;
  15. ii:INT:=0;
  16. 復(fù)位RT,光柵1RT,光柵2RT,光柵3RT: R_TRIG;
  17. END_VAR


復(fù)制代碼
  1. 順序[1] := 取料順序IN/1000;
  2. 順序[2] := (取料順序IN/100)MOD 10;
  3. 順序[3] := (取料順序IN/10)MOD 10;
  4. 順序[4] := 取料順序IN MOD10;
  5. 復(fù)位RT(CLK:=復(fù)位按鈕,Q=>);
  6. 光柵1RT(CLK:=光柵[1],Q=>);
  7. 光柵2RT(CLK:=光柵[2],Q=>);
  8. 光柵3RT(CLK:=光柵[3],Q=>);
  9. IF復(fù)位RT.Q THEN
  10. ii:=0;
  11. 順序tmp:=0;
  12. 報(bào)警:=0;
  13. 指示燈[1]:=0;
  14. 指示燈[2]:=0;
  15. 指示燈[3]:=0;
  16. END_IF
  17. FOR ii:=1 TO 4 DO //順序循環(huán)
  18. IF報(bào)警 THEN
  19. EXIT;
  20. END_IF
  21. IF順序tmp>4 THEN
  22. 順序tmp:=0;
  23. END_IF
  24. IF順序tmp=0 THEN
  25. 順序tmp:=ii;
  26. END_IF
  27. 位置tmp:=順序[ii];
  28. IF位置tmp=0 THEN
  29. 順序tmp:=ii+1;
  30. EXIT;
  31. END_IF
  32. IFNOT 指示燈[1] AND NOT 指示燈[2] ANDNOT 指示燈[3] THEN
  33. IF順序tmp=ii THEN
  34. 指示燈[位置tmp]:=1;
  35. 順序tmp:=ii+1;
  36. END_IF
  37. ELSE
  38. EXIT;
  39. END_IF
  40. END_FOR
  41. IF 指示燈[1] THEN
  42. IF光柵1RT.Q THEN
  43. 指示燈[1]:=0;
  44. END_IF
  45. IF光柵2RT.Q OR 光柵3RT.Q THEN
  46. 報(bào)警:=1;
  47. END_IF
  48. END_IF
  49. IF 指示燈[2] THEN
  50. IF光柵2RT.Q THEN
  51. 指示燈[2]:=0;
  52. END_IF
  53. IF光柵1RT.Q OR 光柵3RT.Q THEN
  54. 報(bào)警:=1;
  55. END_IF
  56. END_IF
  57. IF 指示燈[3] THEN
  58. IF光柵3RT.Q THEN
  59. 指示燈[3]:=0;
  60. END_IF
  61. IF光柵1RT.Q OR 光柵2RT.Q THEN
  62. 報(bào)警:=1;
  63. END_IF
  64. END_IF
[ 此帖被es_ice在2024-07-23 09:03重新編輯 ]