MC_Axis.TcPOU 37 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <TcPlcObject Version="1.1.0.1" ProductVersion="3.1.4024.12">
  3. <POU Name="MC_Axis" Id="{fad15423-8beb-467d-9406-8ef20a004661}" SpecialFunc="None">
  4. <Declaration><![CDATA[PROGRAM MC_Axis
  5. VAR
  6. Buffer : AxisFunction;
  7. Boat : AxisFunction;
  8. CAPS : AxisFunction;
  9. END_VAR
  10. ]]></Declaration>
  11. <Implementation>
  12. <ST><![CDATA[//01.Axis 基础参数设置(TP MODE)
  13. Boat(AxisControl:=_200_Axis.BoatControl ,AxisData:= _200_Axis.BoatData, AxisState=>_200_Axis.BoatAxisState );
  14. Buffer(AxisControl:=_200_Axis.BufferControl ,AxisData:=_200_Axis.BufferData ,AxisState=>_200_Axis.BufferAxisState );
  15. CAPS(AxisControl:=_200_Axis.CapControl ,AxisData:=_200_Axis.CapData ,AxisState=>_200_Axis.CapAxisState );
  16. //轴最大转矩设置
  17. _200_Axis.BufferMaxTorque:=_200_Axis.BufferData.MaxTorque:=1000;
  18. _200_Axis.BoatMaxTorque:=_200_Axis.BoatData.MaxTorque:=1000;
  19. _200_Axis.CapMaxTorque:=_200_Axis.CapData.MaxTorque:=1000;
  20. //轴最大速度
  21. _200_Axis.BufferMaxSpeed:=_200_Axis.BufferData.MaxSpeed:=400;
  22. _200_Axis.BoatMaxSpeed:=_200_Axis.BoatData.MaxSpeed:=400;
  23. _200_Axis.CapMaxSpeed:=_200_Axis.CapData.MaxSpeed:=1000;
  24. //轴转矩当前值
  25. _200_Axis.BufferData.ActTorque:=_200_Axis.BufferActTorque;
  26. _200_Axis.BoatData.ActTorque:=_200_Axis.BoatActTorque;
  27. //--.01 Buffer
  28. //Buffer使能
  29. _200_Axis.BufferControl.RobotToAxisEnable:=FBI.I403_15;
  30. //Buffer JOG+
  31. _200_Axis.BufferControl.TPToAxisJogForward:=_200_Axis.JogPosEn AND _200_Axis.Run;
  32. //Buffer JOG-
  33. _200_Axis.BufferControl.TPToAxisJogBackwards:=_200_Axis.JogNegEn AND _200_Axis.Run;
  34. //Buffer JOG速度
  35. _200_Axis.BufferData.Vel[31]:=_200_Axis.JogVel;
  36. //Buffer 相对定位
  37. _200_Axis.BufferControl.RobotToCmdMoveRelative:=_200_Axis.MoveRelEn AND _200_Axis.Run;
  38. //Buffer 绝对定位
  39. _200_Axis.BufferControl.RobotToCmdMoveAbsolute:=_200_Axis.MovAbsEn AND _200_Axis.Run;
  40. //原点回归
  41. _200_Axis.BufferControl.RobotToCmdHome:=_200_Axis.HomeEn AND _200_Axis.Run;
  42. //A1 位置保存
  43. IF _200_Axis.A1PosSaveEn THEN
  44. _200_Axis.A1Position:=_200_Axis.TPInputPos;
  45. _200_Axis.BufferData.Pos[1]:=_200_Axis.A1Position;
  46. ELSE
  47. _200_Axis.A1Position:=_200_Axis.BufferData.Pos[1];
  48. END_IF
  49. //A2 位置保存
  50. IF _200_Axis.A2PosSaveEn THEN
  51. _200_Axis.A2Position:=_200_Axis.TPInputPos;
  52. _200_Axis.BufferData.Pos[2]:=_200_Axis.A2Position;
  53. ELSE
  54. _200_Axis.A2Position:=_200_Axis.BufferData.Pos[2];
  55. END_IF
  56. //A3 位置保存
  57. IF _200_Axis.A3PosSaveEn THEN
  58. _200_Axis.A3Position:=_200_Axis.TPInputPos;
  59. _200_Axis.BufferData.Pos[3]:=_200_Axis.A3Position;
  60. ELSE
  61. _200_Axis.A3Position:=_200_Axis.BufferData.Pos[3];
  62. END_IF
  63. //A4 位置保存
  64. IF _200_Axis.A4PosSaveEn THEN
  65. _200_Axis.A4Position:=_200_Axis.TPInputPos;
  66. _200_Axis.BufferData.Pos[4]:=_200_Axis.A4Position;
  67. ELSE
  68. _200_Axis.A4Position:=_200_Axis.BufferData.Pos[4];
  69. END_IF
  70. //B1 位置保存
  71. IF _200_Axis.B1PosSaveEn THEN
  72. _200_Axis.B1Position:=_200_Axis.TPInputPos;
  73. _200_Axis.BufferData.Pos[5]:=_200_Axis.B1Position;
  74. ELSE
  75. _200_Axis.B1Position:=_200_Axis.BufferData.Pos[5];
  76. END_IF
  77. //B2 位置保存
  78. IF _200_Axis.B2PosSaveEn THEN
  79. _200_Axis.B2Position:=_200_Axis.TPInputPos;
  80. _200_Axis.BufferData.Pos[6]:=_200_Axis.B2Position;
  81. ELSE
  82. _200_Axis.B2Position:=_200_Axis.BufferData.Pos[6];
  83. END_IF
  84. //B3 位置保存
  85. IF _200_Axis.B3PosSaveEn THEN
  86. _200_Axis.B3Position:=_200_Axis.TPInputPos;
  87. _200_Axis.BufferData.Pos[7]:=_200_Axis.B3Position;
  88. ELSE
  89. _200_Axis.B3Position:=_200_Axis.BufferData.Pos[7];
  90. END_IF
  91. //B4 位置保存
  92. IF _200_Axis.B4PosSaveEn THEN
  93. _200_Axis.B4Position:=_200_Axis.TPInputPos;
  94. _200_Axis.BufferData.Pos[8]:=_200_Axis.B4Position;
  95. ELSE
  96. _200_Axis.B4Position:=_200_Axis.BufferData.Pos[8];
  97. END_IF
  98. //C1 位置保存
  99. IF _200_Axis.C1PosSaveEn THEN
  100. _200_Axis.C1Position:=_200_Axis.TPInputPos;
  101. _200_Axis.BufferData.Pos[9]:=_200_Axis.C1Position;
  102. ELSE
  103. _200_Axis.C1Position:=_200_Axis.BufferData.Pos[9];
  104. END_IF
  105. //C2 位置保存
  106. IF _200_Axis.C2PosSaveEn THEN
  107. _200_Axis.C2Position:=_200_Axis.TPInputPos;
  108. _200_Axis.BufferData.Pos[10]:=_200_Axis.C2Position;
  109. ELSE
  110. _200_Axis.C2Position:=_200_Axis.BufferData.Pos[10];
  111. END_IF
  112. //C3 位置保存
  113. IF _200_Axis.C3PosSaveEn THEN
  114. _200_Axis.C3Position:=_200_Axis.TPInputPos;
  115. _200_Axis.BufferData.Pos[11]:=_200_Axis.C3Position;
  116. ELSE
  117. _200_Axis.C3Position:=_200_Axis.BufferData.Pos[11];
  118. END_IF
  119. //C4 位置保存
  120. IF _200_Axis.C4PosSaveEn THEN
  121. _200_Axis.C4Position:=_200_Axis.TPInputPos;
  122. _200_Axis.BufferData.Pos[12]:=_200_Axis.C4Position;
  123. ELSE
  124. _200_Axis.C4Position:=_200_Axis.BufferData.Pos[12];
  125. END_IF
  126. //D1 位置保存
  127. IF _200_Axis.D1PosSaveEn THEN
  128. _200_Axis.D1Position:=_200_Axis.TPInputPos;
  129. _200_Axis.BufferData.Pos[13]:=_200_Axis.D1Position;
  130. ELSE
  131. _200_Axis.D1Position:=_200_Axis.BufferData.Pos[13];
  132. END_IF
  133. //D2 位置保存
  134. IF _200_Axis.D2PosSaveEn THEN
  135. _200_Axis.D2Position:=_200_Axis.TPInputPos;
  136. _200_Axis.BufferData.Pos[14]:=_200_Axis.D2Position;
  137. ELSE
  138. _200_Axis.D2Position:=_200_Axis.BufferData.Pos[14];
  139. END_IF
  140. //D3 位置保存
  141. IF _200_Axis.D3PosSaveEn THEN
  142. _200_Axis.D3Position:=_200_Axis.TPInputPos;
  143. _200_Axis.BufferData.Pos[15]:=_200_Axis.D3Position;
  144. ELSE
  145. _200_Axis.D3Position:=_200_Axis.BufferData.Pos[15];
  146. END_IF
  147. //D4 位置保存
  148. IF _200_Axis.D4PosSaveEn THEN
  149. _200_Axis.D4Position:=_200_Axis.TPInputPos;
  150. _200_Axis.BufferData.Pos[16]:=_200_Axis.D4Position;
  151. ELSE
  152. _200_Axis.D4Position:=_200_Axis.BufferData.Pos[16];
  153. END_IF
  154. //正极限位置保存
  155. IF _200_Axis.PosSoftLimitSaveEN THEN
  156. _200_Axis.PosSoftLimit:=_200_Axis.TPInputPos;
  157. _200_Axis.BufferData.Pos[17]:=_200_Axis.PosSoftLimit;
  158. ELSE
  159. _200_Axis.PosSoftLimit:=_200_Axis.BufferData.Pos[17];
  160. END_IF
  161. //负限位置保存
  162. IF _200_Axis.NegSoftLimitSaveEN THEN
  163. _200_Axis.NegSoftLimit:=_200_Axis.TPInputPos;
  164. _200_Axis.BufferData.Pos[18]:=_200_Axis.NegSoftLimit;
  165. ELSE
  166. _200_Axis.NegSoftLimit:=_200_Axis.BufferData.Pos[18];
  167. END_IF
  168. //点动速度限制
  169. IF _200_Axis.JogVel >10.0 THEN
  170. _200_Axis.JogVel:=1;
  171. ELSIF _200_Axis.JogVel <0.0 THEN
  172. _200_Axis.JogVel:=1;
  173. END_IF
  174. //A1 在位信号
  175. //A2 在位信号
  176. //A3 在位信号
  177. //A4 在位信号
  178. //B1 在位信号
  179. //B2 在位信号
  180. //B3 在位信号
  181. //B4 在位信号
  182. //C1 在位信号
  183. //C2 在位信号
  184. //C3 在位信号
  185. //C4 在位信号
  186. //D1 在位信号
  187. //D2 在位信号
  188. //D3 在位信号
  189. //D4 在位信号
  190. //位置显示
  191. _200_Axis.ActPos:=_200_Axis.BufferAxisState.Pos;
  192. //速度显示
  193. _200_Axis.ActVel:=_200_Axis.BufferAxisState.vel;
  194. //转矩显示
  195. _200_Axis.ActTorque:=_200_Axis.BufferActTorque;
  196. //使能显示
  197. _200_Axis.TeachServoOn:=_200_Axis.BufferAxisState.Enabled;
  198. //运动中
  199. _200_Axis.TeachServoMoving:=_200_Axis.BufferAxisState.Busy;
  200. //异常显示
  201. _200_Axis.TeachServoAlarm:=_200_Axis.BufferAxisState.Error;
  202. //正极限显示
  203. //负极限显示
  204. //异常ID
  205. _200_Axis.ServoCode:=_200_Axis.BufferAxisState.ErrorID;
  206. //按钮互锁
  207. IF _200_Axis.HMINo=190 THEN
  208. IF _200_Axis.HomeEn THEN
  209. _200_Axis.JogPosEn:=0;
  210. _200_Axis.JogNegEn:=0;
  211. _200_Axis.A1PosSaveEn:=0;
  212. _200_Axis.B1PosSaveEn:=0;
  213. _200_Axis.C1PosSaveEn:=0;
  214. _200_Axis.D1PosSaveEn:=0;
  215. _200_Axis.A2PosSaveEn:=0;
  216. _200_Axis.B2PosSaveEn:=0;
  217. _200_Axis.C2PosSaveEn:=0;
  218. _200_Axis.D2PosSaveEn:=0;
  219. _200_Axis.A3PosSaveEn:=0;
  220. _200_Axis.B3PosSaveEn:=0;
  221. _200_Axis.C3PosSaveEn:=0;
  222. _200_Axis.D3PosSaveEn:=0;
  223. _200_Axis.A4PosSaveEn:=0;
  224. _200_Axis.B4PosSaveEn:=0;
  225. _200_Axis.C4PosSaveEn:=0;
  226. _200_Axis.D4PosSaveEn:=0;
  227. END_IF
  228. IF _200_Axis.JogPosEn THEN
  229. _200_Axis.HomeEn:=0;
  230. _200_Axis.JogNegEn:=0;
  231. _200_Axis.A1PosSaveEn:=0;
  232. _200_Axis.B1PosSaveEn:=0;
  233. _200_Axis.C1PosSaveEn:=0;
  234. _200_Axis.D1PosSaveEn:=0;
  235. _200_Axis.A2PosSaveEn:=0;
  236. _200_Axis.B2PosSaveEn:=0;
  237. _200_Axis.C2PosSaveEn:=0;
  238. _200_Axis.D2PosSaveEn:=0;
  239. _200_Axis.A3PosSaveEn:=0;
  240. _200_Axis.B3PosSaveEn:=0;
  241. _200_Axis.C3PosSaveEn:=0;
  242. _200_Axis.D3PosSaveEn:=0;
  243. _200_Axis.A4PosSaveEn:=0;
  244. _200_Axis.B4PosSaveEn:=0;
  245. _200_Axis.C4PosSaveEn:=0;
  246. _200_Axis.D4PosSaveEn:=0;
  247. END_IF
  248. IF _200_Axis.JogNegEn THEN
  249. _200_Axis.HomeEn:=0;
  250. _200_Axis.JogPosEn:=0;
  251. _200_Axis.A1PosSaveEn:=0;
  252. _200_Axis.B1PosSaveEn:=0;
  253. _200_Axis.C1PosSaveEn:=0;
  254. _200_Axis.D1PosSaveEn:=0;
  255. _200_Axis.A2PosSaveEn:=0;
  256. _200_Axis.B2PosSaveEn:=0;
  257. _200_Axis.C2PosSaveEn:=0;
  258. _200_Axis.D2PosSaveEn:=0;
  259. _200_Axis.A3PosSaveEn:=0;
  260. _200_Axis.B3PosSaveEn:=0;
  261. _200_Axis.C3PosSaveEn:=0;
  262. _200_Axis.D3PosSaveEn:=0;
  263. _200_Axis.A4PosSaveEn:=0;
  264. _200_Axis.B4PosSaveEn:=0;
  265. _200_Axis.C4PosSaveEn:=0;
  266. _200_Axis.D4PosSaveEn:=0;
  267. END_IF
  268. IF _200_Axis.A1PosSaveEn THEN
  269. _200_Axis.HomeEn:=0;
  270. _200_Axis.JogPosEn:=0;
  271. _200_Axis.JogNegEn:=0;
  272. _200_Axis.B1PosSaveEn:=0;
  273. _200_Axis.C1PosSaveEn:=0;
  274. _200_Axis.D1PosSaveEn:=0;
  275. _200_Axis.A2PosSaveEn:=0;
  276. _200_Axis.B2PosSaveEn:=0;
  277. _200_Axis.C2PosSaveEn:=0;
  278. _200_Axis.D2PosSaveEn:=0;
  279. _200_Axis.A3PosSaveEn:=0;
  280. _200_Axis.B3PosSaveEn:=0;
  281. _200_Axis.C3PosSaveEn:=0;
  282. _200_Axis.D3PosSaveEn:=0;
  283. _200_Axis.A4PosSaveEn:=0;
  284. _200_Axis.B4PosSaveEn:=0;
  285. _200_Axis.C4PosSaveEn:=0;
  286. _200_Axis.D4PosSaveEn:=0;
  287. END_IF
  288. IF _200_Axis.B1PosSaveEn THEN
  289. _200_Axis.HomeEn:=0;
  290. _200_Axis.JogPosEn:=0;
  291. _200_Axis.JogNegEn:=0;
  292. _200_Axis.A1PosSaveEn:=0;
  293. _200_Axis.C1PosSaveEn:=0;
  294. _200_Axis.D1PosSaveEn:=0;
  295. _200_Axis.A2PosSaveEn:=0;
  296. _200_Axis.B2PosSaveEn:=0;
  297. _200_Axis.C2PosSaveEn:=0;
  298. _200_Axis.D2PosSaveEn:=0;
  299. _200_Axis.A3PosSaveEn:=0;
  300. _200_Axis.B3PosSaveEn:=0;
  301. _200_Axis.C3PosSaveEn:=0;
  302. _200_Axis.D3PosSaveEn:=0;
  303. _200_Axis.A4PosSaveEn:=0;
  304. _200_Axis.B4PosSaveEn:=0;
  305. _200_Axis.C4PosSaveEn:=0;
  306. _200_Axis.D4PosSaveEn:=0;
  307. END_IF
  308. IF _200_Axis.C1PosSaveEn THEN
  309. _200_Axis.HomeEn:=0;
  310. _200_Axis.JogPosEn:=0;
  311. _200_Axis.JogNegEn:=0;
  312. _200_Axis.A1PosSaveEn:=0;
  313. _200_Axis.B1PosSaveEn:=0;
  314. _200_Axis.D1PosSaveEn:=0;
  315. _200_Axis.A2PosSaveEn:=0;
  316. _200_Axis.B2PosSaveEn:=0;
  317. _200_Axis.C2PosSaveEn:=0;
  318. _200_Axis.D2PosSaveEn:=0;
  319. _200_Axis.A3PosSaveEn:=0;
  320. _200_Axis.B3PosSaveEn:=0;
  321. _200_Axis.C3PosSaveEn:=0;
  322. _200_Axis.D3PosSaveEn:=0;
  323. _200_Axis.A4PosSaveEn:=0;
  324. _200_Axis.B4PosSaveEn:=0;
  325. _200_Axis.C4PosSaveEn:=0;
  326. _200_Axis.D4PosSaveEn:=0;
  327. END_IF
  328. IF _200_Axis.D1PosSaveEn THEN
  329. _200_Axis.HomeEn:=0;
  330. _200_Axis.JogPosEn:=0;
  331. _200_Axis.JogNegEn:=0;
  332. _200_Axis.A1PosSaveEn:=0;
  333. _200_Axis.B1PosSaveEn:=0;
  334. _200_Axis.C1PosSaveEn:=0;
  335. _200_Axis.A2PosSaveEn:=0;
  336. _200_Axis.B2PosSaveEn:=0;
  337. _200_Axis.C2PosSaveEn:=0;
  338. _200_Axis.D2PosSaveEn:=0;
  339. _200_Axis.A3PosSaveEn:=0;
  340. _200_Axis.B3PosSaveEn:=0;
  341. _200_Axis.C3PosSaveEn:=0;
  342. _200_Axis.D3PosSaveEn:=0;
  343. _200_Axis.A4PosSaveEn:=0;
  344. _200_Axis.B4PosSaveEn:=0;
  345. _200_Axis.C4PosSaveEn:=0;
  346. _200_Axis.D4PosSaveEn:=0;
  347. END_IF
  348. IF _200_Axis.A2PosSaveEn THEN
  349. _200_Axis.HomeEn:=0;
  350. _200_Axis.JogPosEn:=0;
  351. _200_Axis.JogNegEn:=0;
  352. _200_Axis.A1PosSaveEn:=0;
  353. _200_Axis.B1PosSaveEn:=0;
  354. _200_Axis.C1PosSaveEn:=0;
  355. _200_Axis.D1PosSaveEn:=0;
  356. _200_Axis.B2PosSaveEn:=0;
  357. _200_Axis.C2PosSaveEn:=0;
  358. _200_Axis.D2PosSaveEn:=0;
  359. _200_Axis.A3PosSaveEn:=0;
  360. _200_Axis.B3PosSaveEn:=0;
  361. _200_Axis.C3PosSaveEn:=0;
  362. _200_Axis.D3PosSaveEn:=0;
  363. _200_Axis.A4PosSaveEn:=0;
  364. _200_Axis.B4PosSaveEn:=0;
  365. _200_Axis.C4PosSaveEn:=0;
  366. _200_Axis.D4PosSaveEn:=0;
  367. END_IF
  368. IF _200_Axis.B2PosSaveEn THEN
  369. _200_Axis.HomeEn:=0;
  370. _200_Axis.JogPosEn:=0;
  371. _200_Axis.JogNegEn:=0;
  372. _200_Axis.A1PosSaveEn:=0;
  373. _200_Axis.B1PosSaveEn:=0;
  374. _200_Axis.C1PosSaveEn:=0;
  375. _200_Axis.D1PosSaveEn:=0;
  376. _200_Axis.A2PosSaveEn:=0;
  377. _200_Axis.C2PosSaveEn:=0;
  378. _200_Axis.D2PosSaveEn:=0;
  379. _200_Axis.A3PosSaveEn:=0;
  380. _200_Axis.B3PosSaveEn:=0;
  381. _200_Axis.C3PosSaveEn:=0;
  382. _200_Axis.D3PosSaveEn:=0;
  383. _200_Axis.A4PosSaveEn:=0;
  384. _200_Axis.B4PosSaveEn:=0;
  385. _200_Axis.C4PosSaveEn:=0;
  386. _200_Axis.D4PosSaveEn:=0;
  387. END_IF
  388. IF _200_Axis.C2PosSaveEn THEN
  389. _200_Axis.HomeEn:=0;
  390. _200_Axis.JogPosEn:=0;
  391. _200_Axis.JogNegEn:=0;
  392. _200_Axis.A1PosSaveEn:=0;
  393. _200_Axis.B1PosSaveEn:=0;
  394. _200_Axis.C1PosSaveEn:=0;
  395. _200_Axis.D1PosSaveEn:=0;
  396. _200_Axis.A2PosSaveEn:=0;
  397. _200_Axis.B2PosSaveEn:=0;
  398. _200_Axis.D2PosSaveEn:=0;
  399. _200_Axis.A3PosSaveEn:=0;
  400. _200_Axis.B3PosSaveEn:=0;
  401. _200_Axis.C3PosSaveEn:=0;
  402. _200_Axis.D3PosSaveEn:=0;
  403. _200_Axis.A4PosSaveEn:=0;
  404. _200_Axis.B4PosSaveEn:=0;
  405. _200_Axis.C4PosSaveEn:=0;
  406. _200_Axis.D4PosSaveEn:=0;
  407. END_IF
  408. IF _200_Axis.D2PosSaveEn THEN
  409. _200_Axis.HomeEn:=0;
  410. _200_Axis.JogPosEn:=0;
  411. _200_Axis.JogNegEn:=0;
  412. _200_Axis.A1PosSaveEn:=0;
  413. _200_Axis.B1PosSaveEn:=0;
  414. _200_Axis.C1PosSaveEn:=0;
  415. _200_Axis.D1PosSaveEn:=0;
  416. _200_Axis.A2PosSaveEn:=0;
  417. _200_Axis.B2PosSaveEn:=0;
  418. _200_Axis.C2PosSaveEn:=0;
  419. _200_Axis.A3PosSaveEn:=0;
  420. _200_Axis.B3PosSaveEn:=0;
  421. _200_Axis.C3PosSaveEn:=0;
  422. _200_Axis.D3PosSaveEn:=0;
  423. _200_Axis.A4PosSaveEn:=0;
  424. _200_Axis.B4PosSaveEn:=0;
  425. _200_Axis.C4PosSaveEn:=0;
  426. _200_Axis.D4PosSaveEn:=0;
  427. END_IF
  428. IF _200_Axis.A3PosSaveEn THEN
  429. _200_Axis.HomeEn:=0;
  430. _200_Axis.JogPosEn:=0;
  431. _200_Axis.JogNegEn:=0;
  432. _200_Axis.A1PosSaveEn:=0;
  433. _200_Axis.B1PosSaveEn:=0;
  434. _200_Axis.C1PosSaveEn:=0;
  435. _200_Axis.D1PosSaveEn:=0;
  436. _200_Axis.A2PosSaveEn:=0;
  437. _200_Axis.B2PosSaveEn:=0;
  438. _200_Axis.C2PosSaveEn:=0;
  439. _200_Axis.D2PosSaveEn:=0;
  440. _200_Axis.B3PosSaveEn:=0;
  441. _200_Axis.C3PosSaveEn:=0;
  442. _200_Axis.D3PosSaveEn:=0;
  443. _200_Axis.A4PosSaveEn:=0;
  444. _200_Axis.B4PosSaveEn:=0;
  445. _200_Axis.C4PosSaveEn:=0;
  446. _200_Axis.D4PosSaveEn:=0;
  447. END_IF
  448. IF _200_Axis.B3PosSaveEn THEN
  449. _200_Axis.HomeEn:=0;
  450. _200_Axis.JogPosEn:=0;
  451. _200_Axis.JogNegEn:=0;
  452. _200_Axis.A1PosSaveEn:=0;
  453. _200_Axis.B1PosSaveEn:=0;
  454. _200_Axis.C1PosSaveEn:=0;
  455. _200_Axis.D1PosSaveEn:=0;
  456. _200_Axis.A2PosSaveEn:=0;
  457. _200_Axis.B2PosSaveEn:=0;
  458. _200_Axis.C2PosSaveEn:=0;
  459. _200_Axis.D2PosSaveEn:=0;
  460. _200_Axis.A3PosSaveEn:=0;
  461. _200_Axis.C3PosSaveEn:=0;
  462. _200_Axis.D3PosSaveEn:=0;
  463. _200_Axis.A4PosSaveEn:=0;
  464. _200_Axis.B4PosSaveEn:=0;
  465. _200_Axis.C4PosSaveEn:=0;
  466. _200_Axis.D4PosSaveEn:=0;
  467. END_IF
  468. IF _200_Axis.C3PosSaveEn THEN
  469. _200_Axis.HomeEn:=0;
  470. _200_Axis.JogPosEn:=0;
  471. _200_Axis.JogNegEn:=0;
  472. _200_Axis.A1PosSaveEn:=0;
  473. _200_Axis.B1PosSaveEn:=0;
  474. _200_Axis.C1PosSaveEn:=0;
  475. _200_Axis.D1PosSaveEn:=0;
  476. _200_Axis.A2PosSaveEn:=0;
  477. _200_Axis.B2PosSaveEn:=0;
  478. _200_Axis.C2PosSaveEn:=0;
  479. _200_Axis.D2PosSaveEn:=0;
  480. _200_Axis.A3PosSaveEn:=0;
  481. _200_Axis.B3PosSaveEn:=0;
  482. _200_Axis.D3PosSaveEn:=0;
  483. _200_Axis.A4PosSaveEn:=0;
  484. _200_Axis.B4PosSaveEn:=0;
  485. _200_Axis.C4PosSaveEn:=0;
  486. _200_Axis.D4PosSaveEn:=0;
  487. END_IF
  488. IF _200_Axis.D3PosSaveEn THEN
  489. _200_Axis.HomeEn:=0;
  490. _200_Axis.JogPosEn:=0;
  491. _200_Axis.JogNegEn:=0;
  492. _200_Axis.A1PosSaveEn:=0;
  493. _200_Axis.B1PosSaveEn:=0;
  494. _200_Axis.C1PosSaveEn:=0;
  495. _200_Axis.D1PosSaveEn:=0;
  496. _200_Axis.A2PosSaveEn:=0;
  497. _200_Axis.B2PosSaveEn:=0;
  498. _200_Axis.C2PosSaveEn:=0;
  499. _200_Axis.D2PosSaveEn:=0;
  500. _200_Axis.A3PosSaveEn:=0;
  501. _200_Axis.B3PosSaveEn:=0;
  502. _200_Axis.C3PosSaveEn:=0;
  503. _200_Axis.A4PosSaveEn:=0;
  504. _200_Axis.B4PosSaveEn:=0;
  505. _200_Axis.C4PosSaveEn:=0;
  506. _200_Axis.D4PosSaveEn:=0;
  507. END_IF
  508. IF _200_Axis.A4PosSaveEn THEN
  509. _200_Axis.HomeEn:=0;
  510. _200_Axis.JogPosEn:=0;
  511. _200_Axis.JogNegEn:=0;
  512. _200_Axis.A1PosSaveEn:=0;
  513. _200_Axis.B1PosSaveEn:=0;
  514. _200_Axis.C1PosSaveEn:=0;
  515. _200_Axis.D1PosSaveEn:=0;
  516. _200_Axis.A2PosSaveEn:=0;
  517. _200_Axis.B2PosSaveEn:=0;
  518. _200_Axis.C2PosSaveEn:=0;
  519. _200_Axis.D2PosSaveEn:=0;
  520. _200_Axis.A3PosSaveEn:=0;
  521. _200_Axis.B3PosSaveEn:=0;
  522. _200_Axis.C3PosSaveEn:=0;
  523. _200_Axis.D3PosSaveEn:=0;
  524. _200_Axis.B4PosSaveEn:=0;
  525. _200_Axis.C4PosSaveEn:=0;
  526. _200_Axis.D4PosSaveEn:=0;
  527. END_IF
  528. IF _200_Axis.B4PosSaveEn THEN
  529. _200_Axis.HomeEn:=0;
  530. _200_Axis.JogPosEn:=0;
  531. _200_Axis.JogNegEn:=0;
  532. _200_Axis.A1PosSaveEn:=0;
  533. _200_Axis.B1PosSaveEn:=0;
  534. _200_Axis.C1PosSaveEn:=0;
  535. _200_Axis.D1PosSaveEn:=0;
  536. _200_Axis.A2PosSaveEn:=0;
  537. _200_Axis.B2PosSaveEn:=0;
  538. _200_Axis.C2PosSaveEn:=0;
  539. _200_Axis.D2PosSaveEn:=0;
  540. _200_Axis.A3PosSaveEn:=0;
  541. _200_Axis.B3PosSaveEn:=0;
  542. _200_Axis.C3PosSaveEn:=0;
  543. _200_Axis.D3PosSaveEn:=0;
  544. _200_Axis.A4PosSaveEn:=0;
  545. _200_Axis.C4PosSaveEn:=0;
  546. _200_Axis.D4PosSaveEn:=0;
  547. END_IF
  548. IF _200_Axis.C4PosSaveEn THEN
  549. _200_Axis.HomeEn:=0;
  550. _200_Axis.JogPosEn:=0;
  551. _200_Axis.JogNegEn:=0;
  552. _200_Axis.A1PosSaveEn:=0;
  553. _200_Axis.B1PosSaveEn:=0;
  554. _200_Axis.C1PosSaveEn:=0;
  555. _200_Axis.D1PosSaveEn:=0;
  556. _200_Axis.A2PosSaveEn:=0;
  557. _200_Axis.B2PosSaveEn:=0;
  558. _200_Axis.C2PosSaveEn:=0;
  559. _200_Axis.D2PosSaveEn:=0;
  560. _200_Axis.A3PosSaveEn:=0;
  561. _200_Axis.B3PosSaveEn:=0;
  562. _200_Axis.C3PosSaveEn:=0;
  563. _200_Axis.D3PosSaveEn:=0;
  564. _200_Axis.A4PosSaveEn:=0;
  565. _200_Axis.B4PosSaveEn:=0;
  566. _200_Axis.D4PosSaveEn:=0;
  567. END_IF
  568. IF _200_Axis.D4PosSaveEn THEN
  569. _200_Axis.HomeEn:=0;
  570. _200_Axis.JogPosEn:=0;
  571. _200_Axis.JogNegEn:=0;
  572. _200_Axis.A1PosSaveEn:=0;
  573. _200_Axis.B1PosSaveEn:=0;
  574. _200_Axis.C1PosSaveEn:=0;
  575. _200_Axis.D1PosSaveEn:=0;
  576. _200_Axis.A2PosSaveEn:=0;
  577. _200_Axis.B2PosSaveEn:=0;
  578. _200_Axis.C2PosSaveEn:=0;
  579. _200_Axis.D2PosSaveEn:=0;
  580. _200_Axis.A3PosSaveEn:=0;
  581. _200_Axis.B3PosSaveEn:=0;
  582. _200_Axis.C3PosSaveEn:=0;
  583. _200_Axis.D3PosSaveEn:=0;
  584. _200_Axis.A4PosSaveEn:=0;
  585. _200_Axis.B4PosSaveEn:=0;
  586. _200_Axis.C4PosSaveEn:=0;
  587. END_IF
  588. ELSE
  589. _200_Axis.HomeEn:=0;
  590. _200_Axis.JogPosEn:=0;
  591. _200_Axis.JogNegEn:=0;
  592. _200_Axis.A1PosSaveEn:=0;
  593. _200_Axis.B1PosSaveEn:=0;
  594. _200_Axis.C1PosSaveEn:=0;
  595. _200_Axis.D1PosSaveEn:=0;
  596. _200_Axis.A2PosSaveEn:=0;
  597. _200_Axis.B2PosSaveEn:=0;
  598. _200_Axis.C2PosSaveEn:=0;
  599. _200_Axis.D2PosSaveEn:=0;
  600. _200_Axis.A3PosSaveEn:=0;
  601. _200_Axis.B3PosSaveEn:=0;
  602. _200_Axis.C3PosSaveEn:=0;
  603. _200_Axis.D3PosSaveEn:=0;
  604. _200_Axis.A4PosSaveEn:=0;
  605. _200_Axis.B4PosSaveEn:=0;
  606. _200_Axis.C4PosSaveEn:=0;
  607. _200_Axis.D4PosSaveEn:=0;
  608. END_IF
  609. //--.02 Boat
  610. //Boat使能
  611. _200_Axis.BoatControl.RobotToAxisEnable:=_200_Axis.HMINo=191;
  612. //Boat JOG+
  613. _200_Axis.BoatControl.TPToAxisJogBackwards:=_200_Axis.BoatJogUPEn AND _200_Axis.Run1;
  614. //Boat JOG-
  615. _200_Axis.BoatControl.TPToAxisJogForward:=_200_Axis.BoatJogDownEn AND _200_Axis.Run1;
  616. //Boat JOG速度
  617. _200_Axis.BoatData.Vel[31]:=_200_Axis.BoatJogVel;
  618. //Boat 相对定位
  619. _200_Axis.BoatControl.RobotToCmdMoveRelative:=_200_Axis.BoatMoveRelEn AND _200_Axis.Run1;
  620. //Boat 绝对定位
  621. _200_Axis.BoatControl.RobotToCmdMoveAbsolute:=_200_Axis.BoatMovAbsEn AND _200_Axis.Run1;
  622. //原点回归
  623. _200_Axis.BoatControl.RobotToCmdHome:=_200_Axis.BoatHomeEn AND _200_Axis.Run1;
  624. //HOME保存
  625. IF _200_Axis.BoatHomePosEN THEN
  626. _200_Axis.BoatHomePos:=_200_Axis.BoatTPInputPos;
  627. _200_Axis.BoatData.Pos[1]:=_200_Axis.BoatHomePos;
  628. ELSE
  629. _200_Axis.BoatHomePos:=_200_Axis.BoatData.Pos[1];
  630. END_IF
  631. //MID保存
  632. IF _200_Axis.BoatMidPosEN THEN
  633. _200_Axis.BoatMidPos:=_200_Axis.BoatTPInputPos;
  634. _200_Axis.BoatData.Pos[2]:=_200_Axis.BoatMidPos;
  635. ELSE
  636. _200_Axis.BoatMidPos:=_200_Axis.BoatData.Pos[2];
  637. END_IF
  638. //CAP保存
  639. IF _200_Axis.BoatCapsPosEN THEN
  640. _200_Axis.BoatCapsPos:=_200_Axis.BoatTPInputPos;
  641. _200_Axis.BoatData.Pos[3]:=_200_Axis.BoatCapsPos;
  642. ELSE
  643. _200_Axis.BoatCapsPos:=_200_Axis.BoatData.Pos[3];
  644. END_IF
  645. //hmoe在位
  646. //mid在位
  647. //CAP在位
  648. //点动速度限制
  649. IF _200_Axis.BoatJogVel >10.0 THEN
  650. _200_Axis.BoatJogVel:=1;
  651. ELSIF _200_Axis.BoatJogVel <0.0 THEN
  652. _200_Axis.BoatJogVel:=1;
  653. END_IF
  654. //位置显示
  655. _200_Axis.BoatActPos:=_200_Axis.BoatAxisState.Pos;
  656. //速度显示
  657. _200_Axis.BoatActVel:=_200_Axis.BoatAxisState.vel;
  658. //转矩显示
  659. _200_Axis.TPBoatActTorque:=_200_Axis.BoatActTorque;
  660. //使能显示
  661. _200_Axis.BoatServoOn:=_200_Axis.BoatAxisState.Enabled;
  662. //运动中
  663. _200_Axis.BoatServoMoving:=_200_Axis.BoatAxisState.Busy;
  664. //异常显示
  665. _200_Axis.BoatServoAlarm:=_200_Axis.BoatAxisState.Error;
  666. //正极限显示
  667. //负极限显示
  668. //异常ID
  669. _200_Axis.BoatServoCode:=_200_Axis.BoatAxisState.ErrorID;
  670. //按钮互锁
  671. IF _200_Axis.HMINo=191 THEN
  672. IF _200_Axis.BoatHomeEn THEN
  673. _200_Axis.BoatJogUPEn:=0;
  674. _200_Axis.BoatJogDownEn:=0;
  675. _200_Axis.BoatMovAbsEn:=0;
  676. _200_Axis.BoatMoveRelEn:=0;
  677. _200_Axis.BoatPosSoftLimitSaveEN:=0;
  678. _200_Axis.BoatNegSoftLimitSaveEN:=0;
  679. _200_Axis.BoatCapsPosEN:=0;
  680. _200_Axis.BoatMidPosEN:=0;
  681. _200_Axis.BoatHomePosEN:=0;
  682. _200_Axis.BoatPosSoftLimitEN:=0;
  683. _200_Axis.BoatNegSoftLimitEN:=0;
  684. END_IF
  685. IF _200_Axis.BoatJogUPEn THEN
  686. _200_Axis.BoatHomeEn:=0;
  687. _200_Axis.BoatJogDownEn:=0;
  688. _200_Axis.BoatMovAbsEn:=0;
  689. _200_Axis.BoatMoveRelEn:=0;
  690. _200_Axis.BoatPosSoftLimitSaveEN:=0;
  691. _200_Axis.BoatNegSoftLimitSaveEN:=0;
  692. _200_Axis.BoatCapsPosEN:=0;
  693. _200_Axis.BoatMidPosEN:=0;
  694. _200_Axis.BoatHomePosEN:=0;
  695. _200_Axis.BoatPosSoftLimitEN:=0;
  696. _200_Axis.BoatNegSoftLimitEN:=0;
  697. END_IF
  698. IF _200_Axis.BoatJogDownEn THEN
  699. _200_Axis.BoatHomeEn:=0;
  700. _200_Axis.BoatJogUPEn:=0;
  701. _200_Axis.BoatMovAbsEn:=0;
  702. _200_Axis.BoatMoveRelEn:=0;
  703. _200_Axis.BoatPosSoftLimitSaveEN:=0;
  704. _200_Axis.BoatNegSoftLimitSaveEN:=0;
  705. _200_Axis.BoatCapsPosEN:=0;
  706. _200_Axis.BoatMidPosEN:=0;
  707. _200_Axis.BoatHomePosEN:=0;
  708. _200_Axis.BoatPosSoftLimitEN:=0;
  709. _200_Axis.BoatNegSoftLimitEN:=0;
  710. END_IF
  711. IF _200_Axis.BoatMovAbsEn THEN
  712. _200_Axis.BoatHomeEn:=0;
  713. _200_Axis.BoatJogUPEn:=0;
  714. _200_Axis.BoatJogDownEn:=0;
  715. _200_Axis.BoatMoveRelEn:=0;
  716. _200_Axis.BoatPosSoftLimitSaveEN:=0;
  717. _200_Axis.BoatNegSoftLimitSaveEN:=0;
  718. _200_Axis.BoatCapsPosEN:=0;
  719. _200_Axis.BoatMidPosEN:=0;
  720. _200_Axis.BoatHomePosEN:=0;
  721. _200_Axis.BoatPosSoftLimitEN:=0;
  722. _200_Axis.BoatNegSoftLimitEN:=0;
  723. END_IF
  724. IF _200_Axis.BoatMoveRelEn THEN
  725. _200_Axis.BoatHomeEn:=0;
  726. _200_Axis.BoatJogUPEn:=0;
  727. _200_Axis.BoatJogDownEn:=0;
  728. _200_Axis.BoatMovAbsEn:=0;
  729. _200_Axis.BoatPosSoftLimitSaveEN:=0;
  730. _200_Axis.BoatNegSoftLimitSaveEN:=0;
  731. _200_Axis.BoatCapsPosEN:=0;
  732. _200_Axis.BoatMidPosEN:=0;
  733. _200_Axis.BoatHomePosEN:=0;
  734. _200_Axis.BoatPosSoftLimitEN:=0;
  735. _200_Axis.BoatNegSoftLimitEN:=0;
  736. END_IF
  737. IF _200_Axis.BoatPosSoftLimitSaveEN THEN
  738. _200_Axis.BoatHomeEn:=0;
  739. _200_Axis.BoatJogUPEn:=0;
  740. _200_Axis.BoatJogDownEn:=0;
  741. _200_Axis.BoatMovAbsEn:=0;
  742. _200_Axis.BoatMoveRelEn:=0;
  743. _200_Axis.BoatNegSoftLimitSaveEN:=0;
  744. _200_Axis.BoatCapsPosEN:=0;
  745. _200_Axis.BoatMidPosEN:=0;
  746. _200_Axis.BoatHomePosEN:=0;
  747. _200_Axis.BoatPosSoftLimitEN:=0;
  748. _200_Axis.BoatNegSoftLimitEN:=0;
  749. END_IF
  750. IF _200_Axis.BoatNegSoftLimitSaveEN THEN
  751. _200_Axis.BoatHomeEn:=0;
  752. _200_Axis.BoatJogUPEn:=0;
  753. _200_Axis.BoatJogDownEn:=0;
  754. _200_Axis.BoatMovAbsEn:=0;
  755. _200_Axis.BoatMoveRelEn:=0;
  756. _200_Axis.BoatPosSoftLimitSaveEN:=0;
  757. _200_Axis.BoatCapsPosEN:=0;
  758. _200_Axis.BoatMidPosEN:=0;
  759. _200_Axis.BoatHomePosEN:=0;
  760. _200_Axis.BoatPosSoftLimitEN:=0;
  761. _200_Axis.BoatNegSoftLimitEN:=0;
  762. END_IF
  763. IF _200_Axis.BoatCapsPosEN THEN
  764. _200_Axis.BoatHomeEn:=0;
  765. _200_Axis.BoatJogUPEn:=0;
  766. _200_Axis.BoatJogDownEn:=0;
  767. _200_Axis.BoatMovAbsEn:=0;
  768. _200_Axis.BoatMoveRelEn:=0;
  769. _200_Axis.BoatPosSoftLimitSaveEN:=0;
  770. _200_Axis.BoatNegSoftLimitSaveEN:=0;
  771. _200_Axis.BoatMidPosEN:=0;
  772. _200_Axis.BoatHomePosEN:=0;
  773. _200_Axis.BoatPosSoftLimitEN:=0;
  774. _200_Axis.BoatNegSoftLimitEN:=0;
  775. END_IF
  776. IF _200_Axis.BoatMidPosEN THEN
  777. _200_Axis.BoatHomeEn:=0;
  778. _200_Axis.BoatJogUPEn:=0;
  779. _200_Axis.BoatJogDownEn:=0;
  780. _200_Axis.BoatMovAbsEn:=0;
  781. _200_Axis.BoatMoveRelEn:=0;
  782. _200_Axis.BoatPosSoftLimitSaveEN:=0;
  783. _200_Axis.BoatNegSoftLimitSaveEN:=0;
  784. _200_Axis.BoatCapsPosEN:=0;
  785. _200_Axis.BoatHomePosEN:=0;
  786. _200_Axis.BoatPosSoftLimitEN:=0;
  787. _200_Axis.BoatNegSoftLimitEN:=0;
  788. END_IF
  789. IF _200_Axis.BoatHomePosEN THEN
  790. _200_Axis.BoatHomeEn:=0;
  791. _200_Axis.BoatJogUPEn:=0;
  792. _200_Axis.BoatJogDownEn:=0;
  793. _200_Axis.BoatMovAbsEn:=0;
  794. _200_Axis.BoatMoveRelEn:=0;
  795. _200_Axis.BoatPosSoftLimitSaveEN:=0;
  796. _200_Axis.BoatNegSoftLimitSaveEN:=0;
  797. _200_Axis.BoatCapsPosEN:=0;
  798. _200_Axis.BoatMidPosEN:=0;
  799. _200_Axis.BoatPosSoftLimitEN:=0;
  800. _200_Axis.BoatNegSoftLimitEN:=0;
  801. END_IF
  802. IF _200_Axis.BoatPosSoftLimitEN THEN
  803. _200_Axis.BoatHomeEn:=0;
  804. _200_Axis.BoatJogUPEn:=0;
  805. _200_Axis.BoatJogDownEn:=0;
  806. _200_Axis.BoatMovAbsEn:=0;
  807. _200_Axis.BoatMoveRelEn:=0;
  808. _200_Axis.BoatPosSoftLimitSaveEN:=0;
  809. _200_Axis.BoatNegSoftLimitSaveEN:=0;
  810. _200_Axis.BoatCapsPosEN:=0;
  811. _200_Axis.BoatMidPosEN:=0;
  812. _200_Axis.BoatHomePosEN:=0;
  813. _200_Axis.BoatNegSoftLimitEN:=0;
  814. END_IF
  815. IF _200_Axis.BoatNegSoftLimitEN THEN
  816. _200_Axis.BoatHomeEn:=0;
  817. _200_Axis.BoatJogUPEn:=0;
  818. _200_Axis.BoatJogDownEn:=0;
  819. _200_Axis.BoatMovAbsEn:=0;
  820. _200_Axis.BoatMoveRelEn:=0;
  821. _200_Axis.BoatPosSoftLimitSaveEN:=0;
  822. _200_Axis.BoatNegSoftLimitSaveEN:=0;
  823. _200_Axis.BoatCapsPosEN:=0;
  824. _200_Axis.BoatMidPosEN:=0;
  825. _200_Axis.BoatHomePosEN:=0;
  826. _200_Axis.BoatPosSoftLimitEN:=0;
  827. END_IF
  828. ELSE
  829. _200_Axis.BoatHomeEn:=0;
  830. _200_Axis.BoatJogUPEn:=0;
  831. _200_Axis.BoatJogDownEn:=0;
  832. _200_Axis.BoatMovAbsEn:=0;
  833. _200_Axis.BoatMoveRelEn:=0;
  834. _200_Axis.BoatPosSoftLimitSaveEN:=0;
  835. _200_Axis.BoatNegSoftLimitSaveEN:=0;
  836. _200_Axis.BoatCapsPosEN:=0;
  837. _200_Axis.BoatMidPosEN:=0;
  838. _200_Axis.BoatHomePosEN:=0;
  839. _200_Axis.BoatPosSoftLimitEN:=0;
  840. _200_Axis.BoatNegSoftLimitEN:=0;
  841. END_IF
  842. //--.03 Cap
  843. //Cap 使能
  844. _200_Axis.CapControl.RobotToAxisEnable:=_200_Axis.HMINo=191;
  845. //Cap JOG+
  846. _200_Axis.CapControl.TPToAxisJogForward:=_200_Axis.CapsJogFEn AND _200_Axis.Run1;
  847. //Cap JOG-
  848. _200_Axis.CapControl.TPToAxisJogBackwards:=_200_Axis.CapsJogBEn AND _200_Axis.Run1;
  849. //Cap JOG速度
  850. _200_Axis.CapData.Vel[31]:=_200_Axis.CapsJogVel;
  851. //原点传感器
  852. _200_Axis.CapControl.HomeSW:=NOT LAI.I503_01;
  853. //原点回归
  854. _200_Axis.CapControl.RobotToCmdHome:=_200_Axis.CapsHomeEn AND _200_Axis.Run1;
  855. //原点在位判断
  856. //位置显示
  857. _200_Axis.CapsActPos:=_200_Axis.CapAxisState.Pos;
  858. //速度显示
  859. _200_Axis.CapsActPos:=_200_Axis.CapAxisState.vel;
  860. //使能显示
  861. _200_Axis.CapsServoOnOK:=_200_Axis.CapAxisState.Enabled;
  862. //运动中
  863. _200_Axis.CapsServoMoving:=_200_Axis.CapAxisState.Busy;
  864. //异常显示
  865. _200_Axis.CapsServoAlarm:=_200_Axis.CapAxisState.Error;
  866. //正极限显示
  867. //负极限显示
  868. //异常ID
  869. _200_Axis.CapsServoCode:=_200_Axis.CapAxisState.ErrorID;
  870. //按钮互锁
  871. IF _200_Axis.HMINo=190 THEN
  872. IF _200_Axis.CapsHomeEn THEN
  873. _200_Axis.CapsJogFEn:=0;
  874. _200_Axis.CapsJogBEn:=0;
  875. _200_Axis.CapsServoOn:=0;
  876. END_IF
  877. IF _200_Axis.CapsJogFEn THEN
  878. _200_Axis.CapsHomeEn:=0;
  879. _200_Axis.CapsJogBEn:=0;
  880. _200_Axis.CapsServoOn:=0;
  881. END_IF
  882. IF _200_Axis.CapsJogBEn THEN
  883. _200_Axis.CapsHomeEn:=0;
  884. _200_Axis.CapsJogFEn:=0;
  885. _200_Axis.CapsServoOn:=0;
  886. END_IF
  887. IF _200_Axis.CapsServoOn THEN
  888. _200_Axis.CapsHomeEn:=0;
  889. _200_Axis.CapsJogFEn:=0;
  890. _200_Axis.CapsJogBEn:=0;
  891. END_IF
  892. ELSE
  893. _200_Axis.CapsHomeEn:=0;
  894. _200_Axis.CapsJogFEn:=0;
  895. _200_Axis.CapsJogBEn:=0;
  896. _200_Axis.CapsServoOn:=0;
  897. END_IF
  898. //点动速度限制
  899. IF _200_Axis.CapsJogVel >50.0 THEN
  900. _200_Axis.CapsJogVel:=1;
  901. ELSIF _200_Axis.CapsJogVel <0.0 THEN
  902. _200_Axis.CapsJogVel:=1;
  903. END_IF
  904. //02.Axis 基础参数设置(PC MODE)
  905. //03.Axis Error(轴异常报警)
  906. ]]></ST>
  907. </Implementation>
  908. <LineIds Name="MC_Axis">
  909. <LineId Id="73" Count="2" />
  910. <LineId Id="77" Count="0" />
  911. <LineId Id="80" Count="0" />
  912. <LineId Id="156" Count="0" />
  913. <LineId Id="81" Count="2" />
  914. <LineId Id="157" Count="0" />
  915. <LineId Id="104" Count="3" />
  916. <LineId Id="158" Count="0" />
  917. <LineId Id="108" Count="0" />
  918. <LineId Id="84" Count="0" />
  919. <LineId Id="118" Count="0" />
  920. <LineId Id="159" Count="0" />
  921. <LineId Id="128" Count="0" />
  922. <LineId Id="160" Count="0" />
  923. <LineId Id="142" Count="0" />
  924. <LineId Id="139" Count="0" />
  925. <LineId Id="161" Count="0" />
  926. <LineId Id="141" Count="0" />
  927. <LineId Id="162" Count="0" />
  928. <LineId Id="140" Count="0" />
  929. <LineId Id="163" Count="0" />
  930. <LineId Id="143" Count="0" />
  931. <LineId Id="185" Count="0" />
  932. <LineId Id="237" Count="0" />
  933. <LineId Id="187" Count="0" />
  934. <LineId Id="239" Count="0" />
  935. <LineId Id="208" Count="0" />
  936. <LineId Id="241" Count="0" />
  937. <LineId Id="181" Count="0" />
  938. <LineId Id="253" Count="0" />
  939. <LineId Id="275" Count="0" />
  940. <LineId Id="339" Count="0" />
  941. <LineId Id="336" Count="1" />
  942. <LineId Id="276" Count="0" />
  943. <LineId Id="274" Count="0" />
  944. <LineId Id="272" Count="1" />
  945. <LineId Id="193" Count="0" />
  946. <LineId Id="278" Count="1" />
  947. <LineId Id="341" Count="1" />
  948. <LineId Id="340" Count="0" />
  949. <LineId Id="277" Count="0" />
  950. <LineId Id="254" Count="0" />
  951. <LineId Id="194" Count="0" />
  952. <LineId Id="281" Count="1" />
  953. <LineId Id="344" Count="1" />
  954. <LineId Id="343" Count="0" />
  955. <LineId Id="280" Count="0" />
  956. <LineId Id="255" Count="0" />
  957. <LineId Id="195" Count="0" />
  958. <LineId Id="284" Count="1" />
  959. <LineId Id="347" Count="1" />
  960. <LineId Id="346" Count="0" />
  961. <LineId Id="283" Count="0" />
  962. <LineId Id="256" Count="0" />
  963. <LineId Id="196" Count="0" />
  964. <LineId Id="287" Count="1" />
  965. <LineId Id="350" Count="1" />
  966. <LineId Id="349" Count="0" />
  967. <LineId Id="286" Count="0" />
  968. <LineId Id="197" Count="0" />
  969. <LineId Id="290" Count="1" />
  970. <LineId Id="353" Count="1" />
  971. <LineId Id="352" Count="0" />
  972. <LineId Id="289" Count="0" />
  973. <LineId Id="198" Count="0" />
  974. <LineId Id="293" Count="1" />
  975. <LineId Id="356" Count="1" />
  976. <LineId Id="355" Count="0" />
  977. <LineId Id="292" Count="0" />
  978. <LineId Id="199" Count="0" />
  979. <LineId Id="296" Count="1" />
  980. <LineId Id="359" Count="1" />
  981. <LineId Id="358" Count="0" />
  982. <LineId Id="295" Count="0" />
  983. <LineId Id="200" Count="0" />
  984. <LineId Id="299" Count="1" />
  985. <LineId Id="362" Count="1" />
  986. <LineId Id="361" Count="0" />
  987. <LineId Id="298" Count="0" />
  988. <LineId Id="201" Count="0" />
  989. <LineId Id="302" Count="1" />
  990. <LineId Id="365" Count="1" />
  991. <LineId Id="364" Count="0" />
  992. <LineId Id="301" Count="0" />
  993. <LineId Id="202" Count="0" />
  994. <LineId Id="305" Count="1" />
  995. <LineId Id="368" Count="1" />
  996. <LineId Id="367" Count="0" />
  997. <LineId Id="304" Count="0" />
  998. <LineId Id="203" Count="0" />
  999. <LineId Id="308" Count="1" />
  1000. <LineId Id="371" Count="1" />
  1001. <LineId Id="370" Count="0" />
  1002. <LineId Id="307" Count="0" />
  1003. <LineId Id="204" Count="0" />
  1004. <LineId Id="311" Count="1" />
  1005. <LineId Id="374" Count="1" />
  1006. <LineId Id="373" Count="0" />
  1007. <LineId Id="310" Count="0" />
  1008. <LineId Id="205" Count="0" />
  1009. <LineId Id="314" Count="1" />
  1010. <LineId Id="377" Count="1" />
  1011. <LineId Id="376" Count="0" />
  1012. <LineId Id="313" Count="0" />
  1013. <LineId Id="206" Count="0" />
  1014. <LineId Id="317" Count="1" />
  1015. <LineId Id="380" Count="1" />
  1016. <LineId Id="379" Count="0" />
  1017. <LineId Id="316" Count="0" />
  1018. <LineId Id="207" Count="0" />
  1019. <LineId Id="320" Count="1" />
  1020. <LineId Id="383" Count="1" />
  1021. <LineId Id="382" Count="0" />
  1022. <LineId Id="319" Count="0" />
  1023. <LineId Id="323" Count="0" />
  1024. <LineId Id="331" Count="1" />
  1025. <LineId Id="386" Count="1" />
  1026. <LineId Id="385" Count="0" />
  1027. <LineId Id="330" Count="0" />
  1028. <LineId Id="329" Count="0" />
  1029. <LineId Id="334" Count="1" />
  1030. <LineId Id="389" Count="1" />
  1031. <LineId Id="388" Count="0" />
  1032. <LineId Id="333" Count="0" />
  1033. <LineId Id="324" Count="1" />
  1034. <LineId Id="391" Count="0" />
  1035. <LineId Id="393" Count="0" />
  1036. <LineId Id="395" Count="0" />
  1037. <LineId Id="392" Count="0" />
  1038. <LineId Id="326" Count="2" />
  1039. <LineId Id="182" Count="0" />
  1040. <LineId Id="322" Count="0" />
  1041. <LineId Id="209" Count="14" />
  1042. <LineId Id="257" Count="2" />
  1043. <LineId Id="179" Count="0" />
  1044. <LineId Id="260" Count="11" />
  1045. <LineId Id="478" Count="0" />
  1046. <LineId Id="507" Count="0" />
  1047. <LineId Id="479" Count="0" />
  1048. <LineId Id="483" Count="4" />
  1049. <LineId Id="489" Count="13" />
  1050. <LineId Id="529" Count="18" />
  1051. <LineId Id="503" Count="0" />
  1052. <LineId Id="548" Count="18" />
  1053. <LineId Id="504" Count="0" />
  1054. <LineId Id="568" Count="18" />
  1055. <LineId Id="567" Count="0" />
  1056. <LineId Id="588" Count="18" />
  1057. <LineId Id="587" Count="0" />
  1058. <LineId Id="627" Count="18" />
  1059. <LineId Id="607" Count="0" />
  1060. <LineId Id="647" Count="18" />
  1061. <LineId Id="646" Count="0" />
  1062. <LineId Id="667" Count="18" />
  1063. <LineId Id="666" Count="0" />
  1064. <LineId Id="687" Count="18" />
  1065. <LineId Id="686" Count="0" />
  1066. <LineId Id="707" Count="18" />
  1067. <LineId Id="706" Count="0" />
  1068. <LineId Id="726" Count="18" />
  1069. <LineId Id="505" Count="0" />
  1070. <LineId Id="746" Count="18" />
  1071. <LineId Id="745" Count="0" />
  1072. <LineId Id="766" Count="18" />
  1073. <LineId Id="765" Count="0" />
  1074. <LineId Id="787" Count="18" />
  1075. <LineId Id="786" Count="0" />
  1076. <LineId Id="807" Count="18" />
  1077. <LineId Id="806" Count="0" />
  1078. <LineId Id="827" Count="18" />
  1079. <LineId Id="826" Count="0" />
  1080. <LineId Id="848" Count="18" />
  1081. <LineId Id="847" Count="0" />
  1082. <LineId Id="868" Count="18" />
  1083. <LineId Id="867" Count="0" />
  1084. <LineId Id="888" Count="18" />
  1085. <LineId Id="887" Count="0" />
  1086. <LineId Id="506" Count="0" />
  1087. <LineId Id="528" Count="0" />
  1088. <LineId Id="510" Count="16" />
  1089. <LineId Id="508" Count="1" />
  1090. <LineId Id="488" Count="0" />
  1091. <LineId Id="482" Count="0" />
  1092. <LineId Id="164" Count="0" />
  1093. <LineId Id="145" Count="1" />
  1094. <LineId Id="165" Count="0" />
  1095. <LineId Id="147" Count="0" />
  1096. <LineId Id="166" Count="0" />
  1097. <LineId Id="148" Count="0" />
  1098. <LineId Id="168" Count="0" />
  1099. <LineId Id="144" Count="0" />
  1100. <LineId Id="175" Count="3" />
  1101. <LineId Id="224" Count="0" />
  1102. <LineId Id="242" Count="0" />
  1103. <LineId Id="225" Count="0" />
  1104. <LineId Id="416" Count="4" />
  1105. <LineId Id="405" Count="0" />
  1106. <LineId Id="227" Count="0" />
  1107. <LineId Id="422" Count="4" />
  1108. <LineId Id="421" Count="0" />
  1109. <LineId Id="228" Count="0" />
  1110. <LineId Id="428" Count="4" />
  1111. <LineId Id="427" Count="0" />
  1112. <LineId Id="229" Count="2" />
  1113. <LineId Id="410" Count="0" />
  1114. <LineId Id="412" Count="3" />
  1115. <LineId Id="411" Count="0" />
  1116. <LineId Id="444" Count="14" />
  1117. <LineId Id="433" Count="1" />
  1118. <LineId Id="907" Count="1" />
  1119. <LineId Id="914" Count="0" />
  1120. <LineId Id="916" Count="2" />
  1121. <LineId Id="920" Count="0" />
  1122. <LineId Id="919" Count="0" />
  1123. <LineId Id="921" Count="2" />
  1124. <LineId Id="925" Count="0" />
  1125. <LineId Id="924" Count="0" />
  1126. <LineId Id="915" Count="0" />
  1127. <LineId Id="939" Count="11" />
  1128. <LineId Id="910" Count="0" />
  1129. <LineId Id="952" Count="11" />
  1130. <LineId Id="951" Count="0" />
  1131. <LineId Id="965" Count="11" />
  1132. <LineId Id="964" Count="0" />
  1133. <LineId Id="978" Count="11" />
  1134. <LineId Id="977" Count="0" />
  1135. <LineId Id="991" Count="11" />
  1136. <LineId Id="990" Count="0" />
  1137. <LineId Id="1004" Count="11" />
  1138. <LineId Id="1003" Count="0" />
  1139. <LineId Id="1017" Count="11" />
  1140. <LineId Id="1016" Count="0" />
  1141. <LineId Id="1030" Count="11" />
  1142. <LineId Id="1029" Count="0" />
  1143. <LineId Id="1043" Count="11" />
  1144. <LineId Id="1042" Count="0" />
  1145. <LineId Id="1056" Count="11" />
  1146. <LineId Id="1055" Count="0" />
  1147. <LineId Id="1069" Count="11" />
  1148. <LineId Id="1068" Count="0" />
  1149. <LineId Id="911" Count="0" />
  1150. <LineId Id="938" Count="0" />
  1151. <LineId Id="928" Count="9" />
  1152. <LineId Id="912" Count="1" />
  1153. <LineId Id="909" Count="0" />
  1154. <LineId Id="435" Count="8" />
  1155. <LineId Id="226" Count="0" />
  1156. <LineId Id="236" Count="0" />
  1157. <LineId Id="150" Count="1" />
  1158. <LineId Id="170" Count="0" />
  1159. <LineId Id="152" Count="0" />
  1160. <LineId Id="172" Count="0" />
  1161. <LineId Id="153" Count="0" />
  1162. <LineId Id="173" Count="0" />
  1163. <LineId Id="149" Count="0" />
  1164. <LineId Id="174" Count="0" />
  1165. <LineId Id="192" Count="0" />
  1166. <LineId Id="232" Count="0" />
  1167. <LineId Id="243" Count="0" />
  1168. <LineId Id="233" Count="0" />
  1169. <LineId Id="459" Count="0" />
  1170. <LineId Id="461" Count="3" />
  1171. <LineId Id="467" Count="6" />
  1172. <LineId Id="476" Count="0" />
  1173. <LineId Id="474" Count="0" />
  1174. <LineId Id="477" Count="0" />
  1175. <LineId Id="475" Count="0" />
  1176. <LineId Id="460" Count="0" />
  1177. <LineId Id="188" Count="0" />
  1178. <LineId Id="1081" Count="0" />
  1179. <LineId Id="1086" Count="0" />
  1180. <LineId Id="1090" Count="2" />
  1181. <LineId Id="1087" Count="0" />
  1182. <LineId Id="1099" Count="3" />
  1183. <LineId Id="1088" Count="0" />
  1184. <LineId Id="1104" Count="3" />
  1185. <LineId Id="1103" Count="0" />
  1186. <LineId Id="1109" Count="3" />
  1187. <LineId Id="1108" Count="0" />
  1188. <LineId Id="1098" Count="0" />
  1189. <LineId Id="1094" Count="2" />
  1190. <LineId Id="1084" Count="1" />
  1191. <LineId Id="1083" Count="0" />
  1192. <LineId Id="1113" Count="4" />
  1193. <LineId Id="154" Count="0" />
  1194. <LineId Id="234" Count="1" />
  1195. <LineId Id="87" Count="7" />
  1196. <LineId Id="55" Count="0" />
  1197. <LineId Id="49" Count="0" />
  1198. <LineId Id="56" Count="1" />
  1199. <LineId Id="63" Count="0" />
  1200. <LineId Id="65" Count="0" />
  1201. </LineIds>
  1202. </POU>
  1203. </TcPlcObject>