PLC的结构化文本ST语言编程,请教一个简单的例子。 关于施耐德plc 编程Unity Pro XL结构化文本ST...

\u4e09\u83f1PLC\u7ed3\u6784\u5316\u6587\u672cST\u8bed\u8a00\u7f16\u7a0b\u95ee\u9898\uff0c\u4e0a\u5347\u6cbf\u89e6\u53d1\u7528\u4ec0\u4e48\u8bed\u53e5\uff1f

\u4e0a\u5347\u6cbf\u89e6\u53d1\u7528IF (LDP(TRUE,X0) OR LDP(TRUE,D0.A)) THEN\uff0cMOV(TRUE,0,Var_D0);END_IF\uff0c\u89e3\u51b3\u65b9\u6cd5\u5982\u4e0b\uff1a
1\u3001\u9996\u5148\u53cc\u51fb\u684c\u9762\u4e09\u83f1\u7f16\u7a0bGX Works\u8f6f\u4ef6\u542f\u52a8\u56fe\u6807\u3002

2\u3001\u8fdb\u5165\u9875\u9762\u540e\uff0c\u5355\u51fb\u5de5\u5177\u680f\u7684\u65b0\u5efa\u56fe\u6807\uff0c\u8fdb\u884c\u65b0\u5efa\u5de5\u7a0b\u3002

3\u3001\u5728\u5f39\u51fa\u7684\u65b0\u5efa\u5bf9\u8bdd\u6846\u91cc\u8bbe\u7f6e\uff0c\u9700\u8981\u65b0\u5efa\u7684\u5de5\u7a0b\u5c5e\u6027\uff0c\u9996\u5148\u9009\u62e9plc\u7cfb\u5217\uff0c\u673a\u578b\u9009\u62e9\u8981\u662f\u7528\u7684plc\u578b\u53f7\uff0c\u8fd9\u91cc\u9009\u62e9FX3U\uff0c\u5de5\u7a0b\u7c7b\u578b\u9009\u62e9\u7b80\u5355\u5de5\u7a0b\uff0c\u7136\u540e\u786e\u5b9a\u3002


4\u3001\u4e00\u4e2a\u7b80\u5355\u7684plc\u5de5\u7a0b\u5c31\u5efa\u7acb\u597d\u4e86\uff0c\u5de6\u8fb9\u6811\u72b6\u56fe\u4e2d\u7684MAIN\u5c31\u662f\u4e3b\u7a0b\u5e8f\uff0c\u53f3\u8fb9\u7a7a\u767d\u533a\u57df\u5c31\u662f\u7f16\u7a0b\u7684\u5730\u65b9\u3002

5\u3001\u7a0b\u5e8f\u7f16\u5199\u5b8c\u6210\u5c31\u53ef\u4ee5\u70b9\u51fb\u5de5\u5177\u680f\u7684\u8f6c\u6362/\u7f16\u8bd1\uff0c\u5728\u4e0b\u62c9\u6846\u70b9\u51fb\u8f6c\u6362\uff0c\u5c31\u53ef\u4ee5\u7f16\u8bd1\u7f16\u5199\u7684\u7a0b\u5e8f\u4e86\u3002

\u5c31\u662f\u5206\u522b\u53bb\u53d6mw0\u7684\u4f4e\u516b\u4f4d\u548c\u4f4e\u56db\u4f4d\u8d4b\u503c\uff0c\u5177\u4f53\u610f\u601d\u8981\u4ed4\u7ec6\u518d\u770b\u770b\u4e86

下面是一个用ST结构化文本语言编程实现的例子:

css

PROGRAM Example
VAR
X0: BOOL;
Y0: BOOL;
a: INT;
END_VAR

a := 0;

WHILE TRUE DO
IF X0 THEN
a := a + 1;
END_IF

IF a = 3 THEN
Y0 := TRUE;
ELSE
Y0 := FALSE;
END_IF

IF a >= 5 THEN
a := 0;
END_IF

// 延时,防止程序过快执行
DELAY 100ms;
END_WHILE
这个程序首先定义了三个变量X0、Y0和a,其中X0表示按键输入,Y0表示输出信号,a表示按键按下的次数。然后通过一个无限循环来不断检测X0输入是否为真,并根据条件判断和计数来实现功能。

具体来说,程序先将a初始化为0,然后在循环中不断执行以下操作:

判断X0是否为真,如果为真则将a加1;
如果a等于3,则将Y0输出为真,否则输出为假;
如果a大于等于5,则将a重置为0,重新开始计数;
延时一段时间,防止程序过快执行。
需要注意的是,ST语言中的循环语句使用WHILE DO和END_WHILE来表示,IF语句的条件判断需要用THEN和END_IF来限定,变量赋值可以使用:=操作符。

IF X0 == true AND M0 <> X0 THEN
index_X0 := index_X0+1;
IF 5 == index_X0 THEN
a := a+1;
IF 3 == a THEN
Y0 := true;
END_IF
END_IF
END_IF

M0 := X0;

IF ldp(1,X0) THEN
a:=a+1;
IF a = 3 THEN
Y0:=1;
ELSE
Y0:=0;
END_IF;
END_IF;


CTU1(
CU=X0,
RESET=CTU1.Q,
PV=5,
CV=>,
Q=>);
IF CTU1.Q THEN
a=a+1;
END_IF
IF a=3 THEN
Y0=TRUE;
END_IF

LD I0.0 //开始计数
LD I0.1 //计数器完成后复位
CTU C1, 5 //5次计数器后计数器输出
LD SM0.1 // 首次扫描为1
MOVR 16#0, MD0 //MD0清零
LD C1
EU //上升沿
+R 16#1, MD0 //MD0加1
LDR= MD0, 16#03 //等于3时候
= Q0.0 //输出Y1

  • PLC缂栫▼鐨勮瑷绫诲瀷
    绛旓細鏍规嵁鍥介檯鐢靛伐濮斿憳浼氬埗瀹氱殑宸ヤ笟鎺у埗缂栫▼璇█鏍囧噯锛圛EC1131-3锛夛紝PLC鏈変簲绉嶆爣鍑嗙紪绋嬭瑷锛氭褰㈠浘璇█锛圠D锛夈佹寚浠よ〃璇█锛圛L锛夈佸姛鑳芥ā鍧楄瑷锛團BD锛夈侀『搴忓姛鑳芥祦绋嬪浘璇█锛圫FC锛夈缁撴瀯鏂囨湰鍖栬瑷锛圫T锛夈傝繖浜旀爣鍑嗙紪绋嬭瑷锛屽崄鍒嗙畝鍗曟槗瀛︺ 缁撴瀯鍖栨枃鏈瑷鏄敤缁撴瀯鍖栫殑鎻忚堪鏂囨湰鏉ユ弿杩扮▼搴忕殑涓绉嶇紪绋嬭瑷銆傚畠...
  • PLC鏈夊摢浜缂栫▼璇█?
    绛旓細5銆缁撴瀯鍖栨枃鏈瑷锛ST锛夌粨鏋勫寲鏂囨湰璇█鏄敤缁撴瀯鍖栫殑鎻忚堪鏂囨湰鏉ユ弿杩扮▼搴忕殑涓绉嶇紪绋嬭瑷銆傚畠鏄被浼间簬楂樼骇璇█鐨勪竴绉嶇紪绋嬭瑷銆傚湪澶т腑鍨嬬殑PLC绯荤粺涓紝甯搁噰鐢ㄧ粨鏋勫寲鏂囨湰鏉ユ弿杩版帶鍒剁郴缁熶腑鍚勪釜鍙橀噺鐨勫叧绯汇備富瑕佺敤浜庡叾浠栫紪绋嬭瑷杈冮毦瀹炵幇鐨勭敤鎴风▼搴忕紪鍒躲缁撴瀯鍖栨枃鏈紪绋嬭瑷閲囩敤璁$畻鏈虹殑鎻忚堪鏂瑰紡鏉ユ弿杩扮郴缁熶腑鍚勭鍙橀噺...
  • 瑗块棬瀛plc涓璼t鏄粈涔堟剰鎬
    绛旓細STL鏄PLC缂栫▼鐨勪竴绉嶏紝鍜屾褰㈠浘鏄笉鍚岀殑褰㈠紡锛岃岀洰鐨勯兘鏄疄鐜版煇涓帶鍒剁殑鍔熻兘銆傝繖涓唬鐮佹槸涓绯诲垪鐨勬潯浠讹紝浠庤屽疄鐜颁笉鍚岀殑璺宠浆銆傚叿浣撶洰鐨勬槸浠涔堬紝瑕佹牴鎹疄闄呯殑鎺у埗鐩殑鏉ヨВ閲娿係T锛屾槸STRUCT TEXT 鐨勭缉鍐欙紝鏄疘EC61131-3鏍囧噯鍒跺畾鐨勭紪绋嬭瑷锛侊紒浠庡瓧闈㈢悊瑙o紝鏄缁撴瀯鍖栨枃鏈瑷锛佸緢鏄庢樉锛屽畠鏄负缁撴瀯鍖栫紪绋嬭岃癁鐢...
  • PLC缂栫▼鏂瑰紡鐨PLC缂栫▼璇█
    绛旓細plc缂栫▼璇█鏈夋褰㈠浘璇█銆佹寚浠よ〃璇█銆佸姛鑳芥ā鍧楀浘璇█绛夈1銆佹褰㈠浘璇█鏄PLC绋嬪簭璁捐涓渶甯哥敤鐨勭紪绋嬭瑷銆侰PU灏嗙墿鐞嗚緭鍏ヨ鍏ュ唴瀛樿〃锛岄氬父绉颁负鈥滆緭鍏ヨ〃鈥濄傝琛ㄧ粡璇勪及鍚庡湪绋嬪簭涓娇鐢ㄣ備笉鍚屽钩鍙帮紝浣跨敤涓嶅悓绫诲瀷鐨勫瘎瀛樺櫒锛涘湪姣忎釜鎵弿鍛ㄦ湡锛屾寜鐓т粠宸﹀悜鍙筹紝浠庝笂鍒颁笅鐨勯『搴忓鐞嗛昏緫銆2銆佹寚浠よ〃缂栫▼璇█鏄笌...
  • PLC鏈夊嚑绉缂栫▼璇█浠ュ強瀹冧滑鐨勭壒鐐, 鎴戣嚦浠婅繕鏄紕涓嶆槑鐧?
    绛旓細plc鐨勭紪绋嬭瑷鏈変互涓嬪嚑绉嶏細1銆佹褰㈠浘锛圠D锛2銆佸姛鑳藉潡鍥撅紙FBD锛3銆侀『搴忓姛鑳藉浘锛圫FC锛4銆缁撴瀯鍖栨枃鏈锛ST锛5銆佹寚浠よ〃锛圛L锛夎瑷绫诲瀷PLC鐨鐢ㄦ埛绋嬪簭锛屾槸璁捐浜哄憳鏍规嵁鎺у埗绯荤粺鐨勫伐鑹烘帶鍒惰姹傦紝閫氳繃PLC缂栫▼璇█鐨勭紪鍒惰鑼冿紝鎸夌収瀹為檯闇瑕佷娇鐢ㄧ殑鍔熻兘鏉ヨ璁$殑銆傚彧瑕佺敤鎴疯兘澶熸帉鎻℃煇绉嶆爣鍑嗙紪绋嬭瑷锛屽氨鑳藉浣跨敤PLC鍦...
  • PLC甯哥敤鐨勭紪绋嬭瑷鏈夊摢鍑犵
    绛旓細plc缂栫▼璇█鏈夋褰㈠浘璇█銆佹寚浠よ〃璇█銆佸姛鑳芥ā鍧楀浘璇█绛夈1銆佹褰㈠浘璇█鏄PLC绋嬪簭璁捐涓渶甯哥敤鐨勭紪绋嬭瑷銆侰PU灏嗙墿鐞嗚緭鍏ヨ鍏ュ唴瀛樿〃锛岄氬父绉颁负鈥滆緭鍏ヨ〃鈥濄傝琛ㄧ粡璇勪及鍚庡湪绋嬪簭涓娇鐢ㄣ備笉鍚屽钩鍙帮紝浣跨敤涓嶅悓绫诲瀷鐨勫瘎瀛樺櫒锛涘湪姣忎釜鎵弿鍛ㄦ湡锛屾寜鐓т粠宸﹀悜鍙筹紝浠庝笂鍒颁笅鐨勯『搴忓鐞嗛昏緫銆2銆佹寚浠よ〃缂栫▼璇█鏄笌...
  • 涓夎彵plc鑳界敤st璇█鍚
    绛旓細鍙互鐨凣works3鏀寔ST璇█缂栫▼锛岃屼笖杩樻敮鎸丩D鍜孲T娣风紪銆傚璇翠竴鐐瑰氨鏄笘闈笂甯歌鐨刾lc杩欎簺骞撮兘鏀寔缁撴瀯鍖栨枃鏈缂栫▼鐨勶紝浜轰汉瀛T鐨勫ぇ鐜涓嬶紝plc鍘傚涔熻涓庢椂淇辫繘銆傚洜姝や笁鑿plc鐨涓绘祦浜у搧鏄敮鎸ST缂栫▼璇█鐨勩
  • plc鏈夊嚑绉缂栫▼璇█寰楃壒鐐
    绛旓細plc缂栫▼璇█鏈夋褰㈠浘璇█銆佹寚浠よ〃璇█銆佸姛鑳芥ā鍧楀浘璇█绛夈1銆佹褰㈠浘璇█鏄PLC绋嬪簭璁捐涓渶甯哥敤鐨勭紪绋嬭瑷銆侰PU灏嗙墿鐞嗚緭鍏ヨ鍏ュ唴瀛樿〃锛岄氬父绉颁负鈥滆緭鍏ヨ〃鈥濄傝琛ㄧ粡璇勪及鍚庡湪绋嬪簭涓娇鐢ㄣ備笉鍚屽钩鍙帮紝浣跨敤涓嶅悓绫诲瀷鐨勫瘎瀛樺櫒锛涘湪姣忎釜鎵弿鍛ㄦ湡锛屾寜鐓т粠宸﹀悜鍙筹紝浠庝笂鍒颁笅鐨勯『搴忓鐞嗛昏緫銆2銆佹寚浠よ〃缂栫▼璇█鏄笌...
  • plc瀛st璇█鏈夊暐鐢
    绛旓細PLC涓鍏辨湁浜旂缂栫▼璇█锛歀D:姊舰鍥 SFC锛氶『搴忓姛鑳藉浘 FBD锛氬姛鑳藉潡 ST锛缁撴瀯鍖栨枃鏈紪绋 浜旂缂栫▼璇█鍚勬湁鍚勭殑鐗圭偣 鏈甯哥敤鐨勬槸LD姊舰鍥 ST缂栫▼璇█鐨勭壒鐐瑰拰鐢ㄩ旓細ST缂栫▼閫傚悎 澶勭悊澶ч噺鐨 鏁板璁$畻鍜屾暟鎹鐞 銆備妇渚嬶細D100=(D20+D21)*D30/D40 涓婇潰鐨勪竴涓畝鍗曠殑 鏁板璁$畻 濡傛灉浣跨敤LD缂栫▼灏遍渶瑕佸啓寰堝...
  • PLC鏈夊摢鍑犵缂栫▼鍣?鍚勬湁浠涔堢壒鐐?
    绛旓細plc鐨勭紪绋嬭瑷鏈変互涓嬪嚑绉嶏細1銆佹褰㈠浘锛圠D锛2銆佸姛鑳藉潡鍥撅紙FBD锛3銆侀『搴忓姛鑳藉浘锛圫FC锛4銆缁撴瀯鍖栨枃鏈锛ST锛5銆佹寚浠よ〃锛圛L锛夎瑷绫诲瀷 PLC鐨鐢ㄦ埛绋嬪簭锛屾槸璁捐浜哄憳鏍规嵁鎺у埗绯荤粺鐨勫伐鑹烘帶鍒惰姹傦紝閫氳繃PLC缂栫▼璇█鐨勭紪鍒惰鑼冿紝鎸夌収瀹為檯闇瑕佷娇鐢ㄧ殑鍔熻兘鏉ヨ璁$殑銆傚彧瑕佺敤鎴疯兘澶熸帉鎻℃煇绉嶆爣鍑嗙紪绋嬭瑷锛屽氨鑳藉浣跨敤PLC鍦...
  • 扩展阅读:st语言编程题经典100例 ... 软考结构化语言怎么写 ... 一张图看懂st语言 ... plc编程st语言入门 ... st语言编程入门自学 ... 三菱plc st语言 ... 结构化面试必背40题 ... 教师结构化万能套话 ... plc结构化文本编程电子版 ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网