PlcAddressConfig.cs 42 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911
  1. using Prism.Mvvm;
  2. using System;
  3. using System.Collections.Generic;
  4. using System.Linq;
  5. using System.Text;
  6. using System.Threading.Tasks;
  7. using TeamAAS_VP.Models.PLC;
  8. using TeamAAS_VP.Resources.Languages;
  9. namespace TeamAAS_VP.Models.PLC
  10. {
  11. public class PlcAddressConfig : BindableBase
  12. {
  13. #region 写入到PLC的地址
  14. private int _PlcNo;
  15. public int PlcNo
  16. {
  17. get { return _PlcNo; }
  18. set { SetProperty(ref _PlcNo, value); }
  19. }
  20. private PlcAddress _WorkMode = new PlcAddress();
  21. /// <summary>
  22. /// 工作模式 =1 拍1打1 =2 拍1打所有
  23. /// </summary>
  24. public PlcAddress Out_WorkMode
  25. {
  26. get { return _WorkMode; }
  27. set { SetProperty(ref _WorkMode, value); }
  28. }
  29. private PlcAddress _PickPointNum = new PlcAddress();
  30. /// <summary>
  31. /// 取料位置 =0 不需要取料 =1 需要取料
  32. /// </summary>
  33. public PlcAddress Out_PickPointNum
  34. {
  35. get { return _PickPointNum; }
  36. set { SetProperty(ref _PickPointNum, value); }
  37. }
  38. private PlcAddress _DowmCameraNum = new PlcAddress();
  39. /// <summary>
  40. /// 下相机拍照次数=0 无
  41. /// </summary>
  42. public PlcAddress Out_DowmCameraNum
  43. {
  44. get => _DowmCameraNum;
  45. set => SetProperty(ref _DowmCameraNum, value);
  46. }
  47. private PlcAddress _UpCameraPickNum = new PlcAddress();
  48. /// <summary>
  49. /// 上相机取料拍照次数=0 无
  50. /// </summary>
  51. public PlcAddress Out_UpCameraPickNum
  52. {
  53. get => _UpCameraPickNum;
  54. set => SetProperty(ref _UpCameraPickNum, value);
  55. }
  56. private PlcAddress _UpCameraPutNum = new PlcAddress();
  57. /// <summary>
  58. /// 上相机放料拍照次数=0 无
  59. /// </summary>
  60. public PlcAddress Out_UpCameraPutNum
  61. {
  62. get => _UpCameraPutNum;
  63. set => SetProperty(ref _UpCameraPutNum, value);
  64. }
  65. private PlcAddress _UPCameracheckNum = new PlcAddress();
  66. /// <summary>
  67. /// 上相机锁附/组装次数=0 无
  68. /// </summary>
  69. public PlcAddress Out_UPCameracheckNum
  70. {
  71. get => _UPCameracheckNum;
  72. set => SetProperty(ref _UPCameracheckNum, value);
  73. }
  74. private PlcAddress _FixedCameraPickNum = new PlcAddress();
  75. /// <summary>
  76. /// 取料固定位置拍产品相机数量 =0 无
  77. /// </summary>
  78. public PlcAddress Out_FixedCameraPickNum
  79. {
  80. get => _FixedCameraPickNum;
  81. set => SetProperty(ref _FixedCameraPickNum, value);
  82. }
  83. private PlcAddress _FixedCameraPutNum = new PlcAddress();
  84. /// <summary>
  85. /// 锁附/组装固定位置拍产品相机数量 =0 无
  86. /// </summary>
  87. public PlcAddress Out_FixedCameraPutNum
  88. {
  89. get => _FixedCameraPutNum;
  90. set => SetProperty(ref _FixedCameraPutNum, value);
  91. }
  92. private PlcAddress _FixedCameracheckNum = new PlcAddress();
  93. /// <summary>
  94. /// 固定相机检测锁附/组装次数=0 无
  95. /// </summary>
  96. public PlcAddress Out_FixedCameracheckNum
  97. {
  98. get => _FixedCameracheckNum;
  99. set => SetProperty(ref _FixedCameracheckNum, value);
  100. }
  101. private PlcAddress _WorkNum = new PlcAddress();
  102. /// <summary>
  103. /// 锁附/组装数量
  104. /// </summary>
  105. public PlcAddress Out_WorkNum
  106. {
  107. get { return _WorkNum; }
  108. set { SetProperty(ref _WorkNum, value); }
  109. }
  110. private PlcAddress _DownCameraStatus = new PlcAddress();
  111. /// <summary>
  112. /// 下相机拍照结果 =1 拍照OK =2 拍照NG =3 取图拍照OK
  113. /// </summary>
  114. public PlcAddress Out_DownCameraStatus
  115. {
  116. get { return _DownCameraStatus; }
  117. set { SetProperty(ref _DownCameraStatus, value); }
  118. }
  119. private PlcAddress _UpCameraPickStatus = new PlcAddress();
  120. /// <summary>
  121. /// 上相机取料拍照结果 =1 拍照OK =2 拍照NG =3 取图拍照OK
  122. /// </summary>
  123. public PlcAddress Out_UpCameraPickStatus
  124. {
  125. get { return _UpCameraPickStatus; }
  126. set { SetProperty(ref _UpCameraPickStatus, value); }
  127. }
  128. private PlcAddress _UpCameraPutStatus = new PlcAddress();
  129. /// <summary>
  130. /// 上相机锁附/组装拍照结果 =1 拍照OK =2 拍照NG =3 取图拍照OK
  131. /// </summary>
  132. public PlcAddress Out_UpCameraPutStatus
  133. {
  134. get { return _UpCameraPutStatus; }
  135. set { SetProperty(ref _UpCameraPutStatus, value); }
  136. }
  137. private PlcAddress _UPCameracheckStatus = new PlcAddress();
  138. /// <summary>
  139. /// 上相机检测拍照结果 =1 拍照OK =2 拍照NG =3 取图拍照OK
  140. /// </summary>
  141. public PlcAddress Out_UPCameracheckStatus
  142. {
  143. get { return _UPCameracheckStatus; }
  144. set { SetProperty(ref _UPCameracheckStatus, value); }
  145. }
  146. private PlcAddress _FixedCameraPickStatus = new PlcAddress();
  147. /// <summary>
  148. /// 固定相机取料拍照结果 =1 拍照OK =2 拍照NG =3 取图拍照OK
  149. /// </summary>
  150. public PlcAddress Out_FixedCameraPickStatus
  151. {
  152. get { return _FixedCameraPickStatus; }
  153. set { SetProperty(ref _FixedCameraPickStatus, value); }
  154. }
  155. private PlcAddress _FixedCameraPutStatus = new PlcAddress();
  156. /// <summary>
  157. /// 固定相机锁附/组装拍照结果 =1 拍照OK =2 拍照NG =3 取图拍照OK
  158. /// </summary>
  159. public PlcAddress Out_FixedCameraPutStatus
  160. {
  161. get { return _FixedCameraPutStatus; }
  162. set { SetProperty(ref _FixedCameraPutStatus, value); }
  163. }
  164. private PlcAddress _FixedCameracheckStatus = new PlcAddress();
  165. /// <summary>
  166. /// 固定相机检测拍照结果 =1 拍照OK =2 拍照NG =3 取图拍照OK
  167. /// </summary>
  168. public PlcAddress Out_FixedCameracheckStatus
  169. {
  170. get { return _FixedCameracheckStatus; }
  171. set { SetProperty(ref _FixedCameracheckStatus, value); }
  172. }
  173. private PlcAddress _Out_CameraDone = new PlcAddress();
  174. /// <summary>
  175. /// 相机坐标拟合完成
  176. /// </summary>
  177. public PlcAddress Out_CameraDone
  178. {
  179. get { return _Out_CameraDone; }
  180. set { SetProperty(ref _Out_CameraDone, value); }
  181. }
  182. private PlcAddress _MesStatus = new PlcAddress();
  183. /// <summary>
  184. /// 过站信息 =1 允许工作 =2 本站放行 =3 数据上传完成
  185. /// </summary>
  186. public PlcAddress Out_MesStatus
  187. {
  188. get { return _MesStatus; }
  189. set { SetProperty(ref _MesStatus, value); }
  190. }
  191. private PlcPointAddress _PickCamera = new PlcPointAddress();
  192. /// <summary>
  193. /// 取料拍照点位参数
  194. /// </summary>
  195. public PlcPointAddress Out_PickCamera
  196. {
  197. get { return _PickCamera; }
  198. set { SetProperty(ref _PickCamera, value); }
  199. }
  200. private PlcPointAddress _Pick = new PlcPointAddress();
  201. /// <summary>
  202. /// 取料点位参数
  203. /// </summary>
  204. public PlcPointAddress Out_Pick
  205. {
  206. get { return _Pick; }
  207. set { SetProperty(ref _Pick, value); }
  208. }
  209. private PlcPointAddress _SecPosCamera = new PlcPointAddress();
  210. /// <summary>
  211. /// 下相机二次定位点位参数
  212. /// </summary>
  213. public PlcPointAddress Out_SecPosCamera
  214. {
  215. get { return _SecPosCamera; }
  216. set { SetProperty(ref _SecPosCamera, value); }
  217. }
  218. private PlcPointAddress _ScrewCamera = new PlcPointAddress();
  219. /// <summary>
  220. /// 锁附拍照点位参数
  221. /// </summary>
  222. public PlcPointAddress Out_ScrewCamera
  223. {
  224. get { return _ScrewCamera; }
  225. set { SetProperty(ref _ScrewCamera, value); }
  226. }
  227. private PlcPointAddress _Screw = new PlcPointAddress();
  228. /// <summary>
  229. /// 锁附点位参数
  230. /// </summary>
  231. public PlcPointAddress Out_Screw
  232. {
  233. get { return _Screw; }
  234. set { SetProperty(ref _Screw, value); }
  235. }
  236. private PlcPointAddress _CheckCamera = new PlcPointAddress();
  237. /// <summary>
  238. /// 复检点位参数
  239. /// </summary>
  240. public PlcPointAddress Out_CheckCamera
  241. {
  242. get { return _CheckCamera; }
  243. set { SetProperty(ref _CheckCamera, value); }
  244. }
  245. private PlcAddress _Out_ScrewTeachNum;
  246. /// <summary>
  247. /// 披头矫正的模式,1:初始化时矫正,2:每个产品矫正一次,3:每颗螺丝矫正一次
  248. /// </summary>
  249. public PlcAddress Out_ScrewTeachNum
  250. {
  251. get { return _Out_ScrewTeachNum; }
  252. set { SetProperty(ref _Out_ScrewTeachNum, value); }
  253. }
  254. private PlcAddress _Out_ScrewTeachOk;
  255. /// <summary>
  256. /// 下相机矫正披头的结果,1:OK,2:NG
  257. /// </summary>
  258. public PlcAddress Out_ScrewTeachOk
  259. {
  260. get { return _Out_ScrewTeachOk; }
  261. set { SetProperty(ref _Out_ScrewTeachOk, value); }
  262. }
  263. private PlcAddress _Out_ScrewFeederIsChanged;
  264. /// <summary>
  265. /// 螺丝供料器发生改变
  266. /// </summary>
  267. public PlcAddress Out_ScrewFeederIsChanged
  268. {
  269. get { return _Out_ScrewFeederIsChanged; }
  270. set { SetProperty(ref _Out_ScrewFeederIsChanged, value); }
  271. }
  272. #endregion
  273. #region 从PLC读取的地址
  274. private PlcAddress _In_Code = new PlcAddress();
  275. /// <summary>
  276. /// 产品编码
  277. /// </summary>
  278. public PlcAddress In_Code
  279. {
  280. get { return _In_Code; }
  281. set { SetProperty(ref _In_Code, value); }
  282. }
  283. private PlcAddress _In_MesCheck = new PlcAddress();
  284. /// <summary>
  285. /// Mes交互 =1 获取过站信息当站是否生产,=2 上传本站数据
  286. /// </summary>
  287. public PlcAddress In_MesCheck
  288. {
  289. get { return _In_MesCheck; }
  290. set { SetProperty(ref _In_MesCheck, value); }
  291. }
  292. private PlcAddress _In_DowmCameraNum = new PlcAddress();
  293. /// <summary>
  294. /// 下相机拍照编号
  295. /// </summary>
  296. public PlcAddress In_DowmCameraNum
  297. {
  298. get { return _In_DowmCameraNum; }
  299. set { SetProperty(ref _In_DowmCameraNum, value); }
  300. }
  301. private PlcAddress _In_DowmCameraExe = new PlcAddress();
  302. /// <summary>
  303. /// 下相机拍照触发
  304. /// </summary>
  305. public PlcAddress In_DowmCameraExe
  306. {
  307. get { return _In_DowmCameraExe; }
  308. set { SetProperty(ref _In_DowmCameraExe, value); }
  309. }
  310. private PlcAddress _In_UpCameraPickNum = new PlcAddress();
  311. /// <summary>
  312. /// 上相机取料拍照编号
  313. /// </summary>
  314. public PlcAddress In_UpCameraPickNum
  315. {
  316. get { return _In_UpCameraPickNum; }
  317. set { SetProperty(ref _In_UpCameraPickNum, value); }
  318. }
  319. private PlcAddress _In_UpCameraPickExe = new PlcAddress();
  320. /// <summary>
  321. /// 上相机取料拍照触发
  322. /// </summary>
  323. public PlcAddress In_UpCameraPickExe
  324. {
  325. get { return _In_UpCameraPickExe; }
  326. set { SetProperty(ref _In_UpCameraPickExe, value); }
  327. }
  328. private PlcAddress _In_UpCameraPutNum = new PlcAddress();
  329. /// <summary>
  330. /// 上相机锁附/组装拍照编号
  331. /// </summary>
  332. public PlcAddress In_UpCameraPutNum
  333. {
  334. get { return _In_UpCameraPutNum; }
  335. set { SetProperty(ref _In_UpCameraPutNum, value); }
  336. }
  337. private PlcAddress _In_UpCameraPutExe = new PlcAddress();
  338. /// <summary>
  339. /// 上相机锁附/组装拍照触发
  340. /// </summary>
  341. public PlcAddress In_UpCameraPutExe
  342. {
  343. get { return _In_UpCameraPutExe; }
  344. set { SetProperty(ref _In_UpCameraPutExe, value); }
  345. }
  346. private PlcAddress _In_UPCameracheckNum = new PlcAddress();
  347. /// <summary>
  348. /// 上相机检测拍照编号
  349. /// </summary>
  350. public PlcAddress In_UPCameracheckNum
  351. {
  352. get { return _In_UPCameracheckNum; }
  353. set { SetProperty(ref _In_UPCameracheckNum, value); }
  354. }
  355. private PlcAddress _In_UPCameracheckExe = new PlcAddress();
  356. /// <summary>
  357. /// 上相机检测拍照触发
  358. /// </summary>
  359. public PlcAddress In_UPCameracheckExe
  360. {
  361. get { return _In_UPCameracheckExe; }
  362. set { SetProperty(ref _In_UPCameracheckExe, value); }
  363. }
  364. private PlcAddress _In_FixedCameraPickNum = new PlcAddress();
  365. /// <summary>
  366. /// 固定相机取料拍照编号
  367. /// </summary>
  368. public PlcAddress In_FixedCameraPickNum
  369. {
  370. get { return _In_FixedCameraPickNum; }
  371. set { SetProperty(ref _In_FixedCameraPickNum, value); }
  372. }
  373. private PlcAddress _In_FixedCameraPickExe = new PlcAddress();
  374. /// <summary>
  375. /// 固定相机取料拍照触发
  376. /// </summary>
  377. public PlcAddress In_FixedCameraPickExe
  378. {
  379. get { return _In_FixedCameraPickExe; }
  380. set { SetProperty(ref _In_FixedCameraPickExe, value); }
  381. }
  382. private PlcAddress _In_FixedCameraPutNum = new PlcAddress();
  383. /// <summary>
  384. /// 固定相机锁附/组装拍照编号
  385. /// </summary>
  386. public PlcAddress In_FixedCameraPutNum
  387. {
  388. get { return _In_FixedCameraPutNum; }
  389. set { SetProperty(ref _In_FixedCameraPutNum, value); }
  390. }
  391. private PlcAddress _In_FixedCameraPutExe = new PlcAddress();
  392. /// <summary>
  393. /// 固定相机锁附/组装拍照触发
  394. /// </summary>
  395. public PlcAddress In_FixedCameraPutExe
  396. {
  397. get { return _In_FixedCameraPutExe; }
  398. set { SetProperty(ref _In_FixedCameraPutExe, value); }
  399. }
  400. private PlcAddress _In_FixedCameracheckNum = new PlcAddress();
  401. /// <summary>
  402. /// 固定相机检测拍照编号
  403. /// </summary>
  404. public PlcAddress In_FixedCameracheckNum
  405. {
  406. get { return _In_FixedCameracheckNum; }
  407. set { SetProperty(ref _In_FixedCameracheckNum, value); }
  408. }
  409. private PlcAddress _In_FixedCameracheckExe = new PlcAddress();
  410. /// <summary>
  411. /// 固定相机检测拍照触发
  412. /// </summary>
  413. public PlcAddress In_FixedCameracheckExe
  414. {
  415. get { return _In_FixedCameracheckExe; }
  416. set { SetProperty(ref _In_FixedCameracheckExe, value); }
  417. }
  418. private PlcAddress _In_ProductNum = new PlcAddress();
  419. /// <summary>
  420. /// 正在锁附/组装编号
  421. /// </summary>
  422. public PlcAddress In_ProductNum
  423. {
  424. get { return _In_ProductNum; }
  425. set { SetProperty(ref _In_ProductNum, value); }
  426. }
  427. private PlcAddress _In_RequestPosition = new PlcAddress();
  428. /// <summary>
  429. /// 请求目标位置
  430. /// </summary>
  431. public PlcAddress In_RequestPosition
  432. {
  433. get { return _In_RequestPosition; }
  434. set { SetProperty(ref _In_RequestPosition, value); }
  435. }
  436. private PlcAddress _In_WorkStart = new PlcAddress();
  437. /// <summary>
  438. /// 锁附/组装开始 =1
  439. /// </summary>
  440. public PlcAddress In_WorkStart
  441. {
  442. get { return _In_WorkStart; }
  443. set { SetProperty(ref _In_WorkStart, value); }
  444. }
  445. private PlcAddress _In_WorkDone = new PlcAddress();
  446. /// <summary>
  447. /// 锁附/组装结束 =1OK =2NG
  448. /// </summary>
  449. public PlcAddress In_WorkDone
  450. {
  451. get { return _In_WorkDone; }
  452. set { SetProperty(ref _In_WorkDone, value); }
  453. }
  454. private PlcAddress _In_PressureValue = new PlcAddress();
  455. /// <summary>
  456. /// 压力值
  457. /// </summary>
  458. public PlcAddress In_PressureValue
  459. {
  460. get { return _In_PressureValue; }
  461. set { SetProperty(ref _In_PressureValue, value); }
  462. }
  463. private PlcAddress _In_ScrewTeachExe;
  464. /// <summary>
  465. /// 触发披头视觉矫正
  466. /// </summary>
  467. public PlcAddress In_ScrewTeachExe
  468. {
  469. get { return _In_ScrewTeachExe; }
  470. set { SetProperty(ref _In_ScrewTeachExe, value); }
  471. }
  472. private PlcAddress _In_PickINC;
  473. /// <summary>
  474. /// 取一颗螺丝出发信号
  475. /// </summary>
  476. public PlcAddress In_PickINC
  477. {
  478. get { return _In_PickINC; }
  479. set { SetProperty(ref _In_PickINC, value); }
  480. }
  481. #endregion
  482. public PlcAddressConfig()
  483. {
  484. }
  485. // 初始默认值
  486. public void SetDefaultValue()
  487. {
  488. // 1. PlcNo 默认
  489. PlcNo = 1;
  490. // 辅助局部函数:确保 PlcAddress 实例存在
  491. PlcAddress Ensure(PlcAddress a)
  492. {
  493. if (a == null) return new PlcAddress();
  494. return a;
  495. }
  496. // 辅助局部函数:确保 PlcPointAddress 实例存在
  497. PlcPointAddress EnsurePoint(PlcPointAddress p)
  498. {
  499. if (p == null) return new PlcPointAddress();
  500. return p;
  501. }
  502. // 2. 按 JSON 提供的数据设置默认值(以当前属性名为准)
  503. Out_WorkMode = Ensure(Out_WorkMode);
  504. Out_WorkMode.Address = "ns=4;s=DB_Communication|FromPC.WorkMode";
  505. Out_WorkMode.DataType = "int16";
  506. Out_WorkMode.Description = Lang.工作模式1拍1打12拍1打所有;
  507. Out_PickPointNum = Ensure(Out_PickPointNum);
  508. Out_PickPointNum.Address = "ns=4;s=DB_Communication|FromPC.PickPointNum";
  509. Out_PickPointNum.DataType = "int16";
  510. Out_PickPointNum.Description = Lang.取料位置0不需要取料1需要取料;
  511. Out_DowmCameraNum = Ensure(Out_DowmCameraNum);
  512. Out_DowmCameraNum.Address = "ns=4;s=DB_Communication|FromPC.DowmCameraNum";
  513. Out_DowmCameraNum.DataType = "int16";
  514. Out_DowmCameraNum.Description = Lang.下相机拍照次数0无;
  515. Out_UpCameraPickNum = Ensure(Out_UpCameraPickNum);
  516. Out_UpCameraPickNum.Address = "ns=4;s=DB_Communication|FromPC.UpCameraPickNum";
  517. Out_UpCameraPickNum.DataType = "int16";
  518. Out_UpCameraPickNum.Description = Lang.上相机取料拍照次数0无;
  519. Out_UpCameraPutNum = Ensure(Out_UpCameraPutNum);
  520. Out_UpCameraPutNum.Address = "ns=4;s=DB_Communication|FromPC.UpCameraPutNum";
  521. Out_UpCameraPutNum.DataType = "int16";
  522. Out_UpCameraPutNum.Description = Lang.上相机放料拍照次数0无;
  523. Out_UPCameracheckNum = Ensure(Out_UPCameracheckNum);
  524. Out_UPCameracheckNum.Address = "ns=4;s=DB_Communication|FromPC.UPCameracheckNum";
  525. Out_UPCameracheckNum.DataType = "int16";
  526. Out_UPCameracheckNum.Description = Lang.上相机锁附组装次数0无;
  527. Out_FixedCameraPickNum = Ensure(Out_FixedCameraPickNum);
  528. Out_FixedCameraPickNum.Address = "ns=4;s=DB_Communication|FromPC.FixedCameraPickNum";
  529. Out_FixedCameraPickNum.DataType = "int16";
  530. Out_FixedCameraPickNum.Description = Lang.取料固定位置拍产品相机数量0无;
  531. Out_FixedCameraPutNum = Ensure(Out_FixedCameraPutNum);
  532. Out_FixedCameraPutNum.Address = "ns=4;s=DB_Communication|FromPC.FixedCameraPutNum";
  533. Out_FixedCameraPutNum.DataType = "int16";
  534. Out_FixedCameraPutNum.Description = Lang.锁附组装固定位置拍产品相机数量0无;
  535. Out_FixedCameracheckNum = Ensure(Out_FixedCameracheckNum);
  536. Out_FixedCameracheckNum.Address = "ns=4;s=DB_Communication|FromPC.FixedCameracheckNum";
  537. Out_FixedCameracheckNum.DataType = "int16";
  538. Out_FixedCameracheckNum.Description = Lang.固定相机检测锁附组装次数0无;
  539. Out_PickCamera = EnsurePoint(Out_PickCamera);
  540. // 3. 为其余 Out_* 设置合理默认(基于注释)
  541. Out_WorkNum = Ensure(Out_WorkNum);
  542. Out_WorkNum.Address = "ns=4;s=DB_Communication|FromPC.WorkNum";
  543. Out_WorkNum.DataType = "int16";
  544. Out_WorkNum.Description = Lang.锁附组装数量;
  545. Out_DownCameraStatus = Ensure(Out_DownCameraStatus);
  546. Out_DownCameraStatus.Address = "ns=4;s=DB_Communication|FromPC.DownCameraStatus";
  547. Out_DownCameraStatus.DataType = "int16";
  548. Out_DownCameraStatus.Description = Lang.下相机拍照结果1拍照OK2拍照NG3取图拍照OK;
  549. Out_UpCameraPickStatus = Ensure(Out_UpCameraPickStatus);
  550. Out_UpCameraPickStatus.Address = "ns=4;s=DB_Communication|FromPC.UpCameraPickStatus";
  551. Out_UpCameraPickStatus.DataType = "int16";
  552. Out_UpCameraPickStatus.Description = Lang.上相机取料拍照结果1拍照OK2拍照NG3取图拍照OK;
  553. Out_UpCameraPutStatus = Ensure(Out_UpCameraPutStatus);
  554. Out_UpCameraPutStatus.Address = "ns=4;s=DB_Communication|FromPC.UpCameraPutStatus";
  555. Out_UpCameraPutStatus.DataType = "int16";
  556. Out_UpCameraPutStatus.Description = Lang.上相机锁附组装拍照结果1拍照OK2拍照NG3取图拍照OK;
  557. Out_UPCameracheckStatus = Ensure(Out_UPCameracheckStatus);
  558. Out_UPCameracheckStatus.Address = "ns=4;s=DB_Communication|FromPC.UPCameracheckStatus";
  559. Out_UPCameracheckStatus.DataType = "int16";
  560. Out_UPCameracheckStatus.Description = Lang.上相机检测拍照结果1拍照OK2拍照NG3取图拍照OK;
  561. Out_FixedCameraPickStatus = Ensure(Out_FixedCameraPickStatus);
  562. Out_FixedCameraPickStatus.Address = "ns=4;s=DB_Communication|FromPC.FixedCameraPickStatus";
  563. Out_FixedCameraPickStatus.DataType = "int16";
  564. Out_FixedCameraPickStatus.Description = Lang.固定相机取料拍照结果1拍照OK2拍照NG3取图拍照OK;
  565. Out_FixedCameraPutStatus = Ensure(Out_FixedCameraPutStatus);
  566. Out_FixedCameraPutStatus.Address = "ns=4;s=DB_Communication|FromPC.FixedCameraPutStatus";
  567. Out_FixedCameraPutStatus.DataType = "int16";
  568. Out_FixedCameraPutStatus.Description = Lang.固定相机锁附组装拍照结果1拍照OK2拍照NG3取图拍照OK;
  569. Out_FixedCameracheckStatus = Ensure(Out_FixedCameracheckStatus);
  570. Out_FixedCameracheckStatus.Address = "ns=4;s=DB_Communication|FromPC.FixedCameracheckStatus";
  571. Out_FixedCameracheckStatus.DataType = "int16";
  572. Out_FixedCameracheckStatus.Description = Lang.固定相机检测拍照结果1拍照OK2拍照NG3取图拍照OK;
  573. Out_CameraDone = Ensure(Out_CameraDone);
  574. Out_CameraDone.Address = "ns=4;s=DB_Communication|FromPC.CameraDone";
  575. Out_CameraDone.DataType = "int16";
  576. Out_CameraDone.Description = Lang.相机坐标拟合完成;
  577. Out_MesStatus = Ensure(Out_MesStatus);
  578. Out_MesStatus.Address = "ns=4;s=DB_Communication|FromPC.MesStatus[{0}]";
  579. Out_MesStatus.DataType = "int16";
  580. Out_MesStatus.Description = Lang.过站信息1允许工作2本站放行3数据上传完成;
  581. // Out_PickCamera 初始化并赋地址
  582. Out_PickCamera = EnsurePoint(Out_PickCamera);
  583. Out_PickCamera.Description = Lang.取料拍照点位参数;
  584. Out_PickCamera.X_Position.Address = "ns=4;s=DB_Communication|FromPC.Point_PickCamera[{0}].X_Position";
  585. Out_PickCamera.X_Velocity.Address = "ns=4;s=DB_Communication|FromPC.Point_PickCamera[{0}].X_Velocity";
  586. Out_PickCamera.Y_Position.Address = "ns=4;s=DB_Communication|FromPC.Point_PickCamera[{0}].Y_Position";
  587. Out_PickCamera.Y_Velocity.Address = "ns=4;s=DB_Communication|FromPC.Point_PickCamera[{0}].Y_Velocity";
  588. Out_PickCamera.Z_Position_Start.Address = "ns=4;s=DB_Communication|FromPC.Point_PickCamera[{0}].Z_Position_Start";
  589. Out_PickCamera.Z_Velocity_Start.Address = "ns=4;s=DB_Communication|FromPC.Point_PickCamera[{0}].Z_Velocity_Start";
  590. Out_PickCamera.Z_Position_Stop.Address = "ns=4;s=DB_Communication|FromPC.Point_PickCamera[{0}].Z_Position_Stop";
  591. Out_PickCamera.Z_Velocity_Stop.Address = "ns=4;s=DB_Communication|FromPC.Point_PickCamera[{0}].Z_Velocity_Stop";
  592. Out_PickCamera.U_Position.Address = "ns=4;s=DB_Communication|FromPC.Point_PickCamera[{0}].U_Position";
  593. Out_PickCamera.U_Velocity.Address = "ns=4;s=DB_Communication|FromPC.Point_PickCamera[{0}].U_Velocity";
  594. Out_PickCamera.R_Position.Address = "ns=4;s=DB_Communication|FromPC.Point_PickCamera[{0}].R_Position";
  595. Out_PickCamera.R_Velocity.Address = "ns=4;s=DB_Communication|FromPC.Point_PickCamera[{0}].R_Velocity";
  596. Out_PickCamera.Torque.Address = "ns=4;s=DB_Communication|FromPC.Point_PickCamera[{0}].Torque";
  597. Out_PickCamera.Feeder.Address = "ns=4;s=DB_Communication|FromPC.Point_PickCamera[{0}].Feeder";
  598. Out_PickCamera.ScrewProNum.Address = "ns=4;s=DB_Communication|FromPC.Point_PickCamera[{0}].ScrewProNum";
  599. // Out_Pick(取料点位)初始化并赋地址
  600. Out_Pick = EnsurePoint(Out_Pick);
  601. Out_Pick.Description = Lang.取料点位参数;
  602. Out_Pick.X_Position.Address = "ns=4;s=DB_Communication|FromPC.Point_Pick[{0}].X_Position";
  603. Out_Pick.X_Velocity.Address = "ns=4;s=DB_Communication|FromPC.Point_Pick[{0}].X_Velocity";
  604. Out_Pick.Y_Position.Address = "ns=4;s=DB_Communication|FromPC.Point_Pick[{0}].Y_Position";
  605. Out_Pick.Y_Velocity.Address = "ns=4;s=DB_Communication|FromPC.Point_Pick[{0}].Y_Velocity";
  606. Out_Pick.Z_Position_Start.Address = "ns=4;s=DB_Communication|FromPC.Point_Pick[{0}].Z_Position_Start";
  607. Out_Pick.Z_Velocity_Start.Address = "ns=4;s=DB_Communication|FromPC.Point_Pick[{0}].Z_Velocity_Start";
  608. Out_Pick.Z_Position_Stop.Address = "ns=4;s=DB_Communication|FromPC.Point_Pick[{0}].Z_Position_Stop";
  609. Out_Pick.Z_Velocity_Stop.Address = "ns=4;s=DB_Communication|FromPC.Point_Pick[{0}].Z_Velocity_Stop";
  610. Out_Pick.U_Position.Address = "ns=4;s=DB_Communication|FromPC.Point_Pick[{0}].U_Position";
  611. Out_Pick.U_Velocity.Address = "ns=4;s=DB_Communication|FromPC.Point_Pick[{0}].U_Velocity";
  612. Out_Pick.R_Position.Address = "ns=4;s=DB_Communication|FromPC.Point_Pick[{0}].R_Position";
  613. Out_Pick.R_Velocity.Address = "ns=4;s=DB_Communication|FromPC.Point_Pick[{0}].R_Velocity";
  614. Out_Pick.Torque.Address = "ns=4;s=DB_Communication|FromPC.Point_Pick[{0}].Torque";
  615. Out_Pick.Feeder.Address = "ns=4;s=DB_Communication|FromPC.Point_Pick[{0}].Feeder";
  616. Out_Pick.ScrewProNum.Address = "ns=4;s=DB_Communication|FromPC.Point_Pick[{0}].ScrewProNum";
  617. // Out_SecPosCamera(下相机二次定位)初始化并赋地址
  618. Out_SecPosCamera = EnsurePoint(Out_SecPosCamera);
  619. Out_SecPosCamera.Description = Lang.下相机二次定位点位参数;
  620. Out_SecPosCamera.X_Position.Address = "ns=4;s=DB_Communication|FromPC.Point_SecPosCamera[{0}].X_Position";
  621. Out_SecPosCamera.X_Velocity.Address = "ns=4;s=DB_Communication|FromPC.Point_SecPosCamera[{0}].X_Velocity";
  622. Out_SecPosCamera.Y_Position.Address = "ns=4;s=DB_Communication|FromPC.Point_SecPosCamera[{0}].Y_Position";
  623. Out_SecPosCamera.Y_Velocity.Address = "ns=4;s=DB_Communication|FromPC.Point_SecPosCamera[{0}].Y_Velocity";
  624. Out_SecPosCamera.Z_Position_Start.Address = "ns=4;s=DB_Communication|FromPC.Point_SecPosCamera[{0}].Z_Position_Start";
  625. Out_SecPosCamera.Z_Velocity_Start.Address = "ns=4;s=DB_Communication|FromPC.Point_SecPosCamera[{0}].Z_Velocity_Start";
  626. Out_SecPosCamera.Z_Position_Stop.Address = "ns=4;s=DB_Communication|FromPC.Point_SecPosCamera[{0}].Z_Position_Stop";
  627. Out_SecPosCamera.Z_Velocity_Stop.Address = "ns=4;s=DB_Communication|FromPC.Point_SecPosCamera[{0}].Z_Velocity_Stop";
  628. Out_SecPosCamera.U_Position.Address = "ns=4;s=DB_Communication|FromPC.Point_SecPosCamera[{0}].U_Position";
  629. Out_SecPosCamera.U_Velocity.Address = "ns=4;s=DB_Communication|FromPC.Point_SecPosCamera[{0}].U_Velocity";
  630. Out_SecPosCamera.R_Position.Address = "ns=4;s=DB_Communication|FromPC.Point_SecPosCamera[{0}].R_Position";
  631. Out_SecPosCamera.R_Velocity.Address = "ns=4;s=DB_Communication|FromPC.Point_SecPosCamera[{0}].R_Velocity";
  632. Out_SecPosCamera.Torque.Address = "ns=4;s=DB_Communication|FromPC.Point_SecPosCamera[{0}].Torque";
  633. Out_SecPosCamera.Feeder.Address = "ns=4;s=DB_Communication|FromPC.Point_SecPosCamera[{0}].Feeder";
  634. Out_SecPosCamera.ScrewProNum.Address = "ns=4;s=DB_Communication|FromPC.Point_SecPosCamera[{0}].ScrewProNum";
  635. // Out_ScrewCamera(锁附拍照点位)初始化并赋地址
  636. Out_ScrewCamera = EnsurePoint(Out_ScrewCamera);
  637. Out_ScrewCamera.Description = Lang.锁附拍照点位参数;
  638. Out_ScrewCamera.X_Position.Address = "ns=4;s=DB_Communication|FromPC.Point_ScrewCamera[{0}].X_Position";
  639. Out_ScrewCamera.X_Velocity.Address = "ns=4;s=DB_Communication|FromPC.Point_ScrewCamera[{0}].X_Velocity";
  640. Out_ScrewCamera.Y_Position.Address = "ns=4;s=DB_Communication|FromPC.Point_ScrewCamera[{0}].Y_Position";
  641. Out_ScrewCamera.Y_Velocity.Address = "ns=4;s=DB_Communication|FromPC.Point_ScrewCamera[{0}].Y_Velocity";
  642. Out_ScrewCamera.Z_Position_Start.Address = "ns=4;s=DB_Communication|FromPC.Point_ScrewCamera[{0}].Z_Position_Start";
  643. Out_ScrewCamera.Z_Velocity_Start.Address = "ns=4;s=DB_Communication|FromPC.Point_ScrewCamera[{0}].Z_Velocity_Start";
  644. Out_ScrewCamera.Z_Position_Stop.Address = "ns=4;s=DB_Communication|FromPC.Point_ScrewCamera[{0}].Z_Position_Stop";
  645. Out_ScrewCamera.Z_Velocity_Stop.Address = "ns=4;s=DB_Communication|FromPC.Point_ScrewCamera[{0}].Z_Velocity_Stop";
  646. Out_ScrewCamera.U_Position.Address = "ns=4;s=DB_Communication|FromPC.Point_ScrewCamera[{0}].U_Position";
  647. Out_ScrewCamera.U_Velocity.Address = "ns=4;s=DB_Communication|FromPC.Point_ScrewCamera[{0}].U_Velocity";
  648. Out_ScrewCamera.R_Position.Address = "ns=4;s=DB_Communication|FromPC.Point_ScrewCamera[{0}].R_Position";
  649. Out_ScrewCamera.R_Velocity.Address = "ns=4;s=DB_Communication|FromPC.Point_ScrewCamera[{0}].R_Velocity";
  650. Out_ScrewCamera.Torque.Address = "ns=4;s=DB_Communication|FromPC.Point_ScrewCamera[{0}].Torque";
  651. Out_ScrewCamera.Feeder.Address = "ns=4;s=DB_Communication|FromPC.Point_ScrewCamera[{0}].Feeder";
  652. Out_ScrewCamera.ScrewProNum.Address = "ns=4;s=DB_Communication|FromPC.Point_ScrewCamera[{0}].ScrewProNum";
  653. // Out_Screw(锁附点位)初始化并赋地址
  654. Out_Screw = EnsurePoint(Out_Screw);
  655. Out_Screw.Description = Lang.锁附点位参数;
  656. Out_Screw.X_Position.Address = "ns=4;s=DB_Communication|FromPC.Point_Screw[{0}].X_Position";
  657. Out_Screw.X_Velocity.Address = "ns=4;s=DB_Communication|FromPC.Point_Screw[{0}].X_Velocity";
  658. Out_Screw.Y_Position.Address = "ns=4;s=DB_Communication|FromPC.Point_Screw[{0}].Y_Position";
  659. Out_Screw.Y_Velocity.Address = "ns=4;s=DB_Communication|FromPC.Point_Screw[{0}].Y_Velocity";
  660. Out_Screw.Z_Position_Start.Address = "ns=4;s=DB_Communication|FromPC.Point_Screw[{0}].Z_Position_Start";
  661. Out_Screw.Z_Velocity_Start.Address = "ns=4;s=DB_Communication|FromPC.Point_Screw[{0}].Z_Velocity_Start";
  662. Out_Screw.Z_Position_Stop.Address = "ns=4;s=DB_Communication|FromPC.Point_Screw[{0}].Z_Position_Stop";
  663. Out_Screw.Z_Velocity_Stop.Address = "ns=4;s=DB_Communication|FromPC.Point_Screw[{0}].Z_Velocity_Stop";
  664. Out_Screw.U_Position.Address = "ns=4;s=DB_Communication|FromPC.Point_Screw[{0}].U_Position";
  665. Out_Screw.U_Velocity.Address = "ns=4;s=DB_Communication|FromPC.Point_Screw[{0}].U_Velocity";
  666. Out_Screw.R_Position.Address = "ns=4;s=DB_Communication|FromPC.Point_Screw[{0}].R_Position";
  667. Out_Screw.R_Velocity.Address = "ns=4;s=DB_Communication|FromPC.Point_Screw[{0}].R_Velocity";
  668. Out_Screw.Torque.Address = "ns=4;s=DB_Communication|FromPC.Point_Screw[{0}].Torque";
  669. Out_Screw.Feeder.Address = "ns=4;s=DB_Communication|FromPC.Point_Screw[{0}].Feeder";
  670. Out_Screw.ScrewProNum.Address = "ns=4;s=DB_Communication|FromPC.Point_Screw[{0}].ScrewProNum";
  671. // Out_CheckCamera(复检点位)初始化并赋地址
  672. Out_CheckCamera = EnsurePoint(Out_CheckCamera);
  673. Out_CheckCamera.Description = Lang.复检点位参数;
  674. Out_CheckCamera.X_Position.Address = "ns=4;s=DB_Communication|FromPC.Point_CheckCamera[{0}].X_Position";
  675. Out_CheckCamera.X_Velocity.Address = "ns=4;s=DB_Communication|FromPC.Point_CheckCamera[{0}].X_Velocity";
  676. Out_CheckCamera.Y_Position.Address = "ns=4;s=DB_Communication|FromPC.Point_CheckCamera[{0}].Y_Position";
  677. Out_CheckCamera.Y_Velocity.Address = "ns=4;s=DB_Communication|FromPC.Point_CheckCamera[{0}].Y_Velocity";
  678. Out_CheckCamera.Z_Position_Start.Address = "ns=4;s=DB_Communication|FromPC.Point_CheckCamera[{0}].Z_Position_Start";
  679. Out_CheckCamera.Z_Velocity_Start.Address = "ns=4;s=DB_Communication|FromPC.Point_CheckCamera[{0}].Z_Velocity_Start";
  680. Out_CheckCamera.Z_Position_Stop.Address = "ns=4;s=DB_Communication|FromPC.Point_CheckCamera[{0}].Z_Position_Stop";
  681. Out_CheckCamera.Z_Velocity_Stop.Address = "ns=4;s=DB_Communication|FromPC.Point_CheckCamera[{0}].Z_Velocity_Stop";
  682. Out_CheckCamera.U_Position.Address = "ns=4;s=DB_Communication|FromPC.Point_CheckCamera[{0}].U_Position";
  683. Out_CheckCamera.U_Velocity.Address = "ns=4;s=DB_Communication|FromPC.Point_CheckCamera[{0}].U_Velocity";
  684. Out_CheckCamera.R_Position.Address = "ns=4;s=DB_Communication|FromPC.Point_CheckCamera[{0}].R_Position";
  685. Out_CheckCamera.R_Velocity.Address = "ns=4;s=DB_Communication|FromPC.Point_CheckCamera[{0}].R_Velocity";
  686. Out_CheckCamera.Torque.Address = "ns=4;s=DB_Communication|FromPC.Point_CheckCamera[{0}].Torque";
  687. Out_CheckCamera.Feeder.Address = "ns=4;s=DB_Communication|FromPC.Point_CheckCamera[{0}].Feeder";
  688. Out_CheckCamera.ScrewProNum.Address = "ns=4;s=DB_Communication|FromPC.Point_CheckCamera[{0}].ScrewProNum";
  689. Out_ScrewTeachNum = Ensure(Out_ScrewTeachNum);
  690. Out_ScrewTeachNum.Address = "ns=4;s=DB_Communication|FromPC.ScrewTeachNum";
  691. Out_ScrewTeachNum.DataType = "int16";
  692. Out_ScrewTeachNum.Description = Lang.披头矫正的模式1初始化时矫正2每个产品矫正一次3每颗螺丝矫正一次;
  693. Out_ScrewTeachOk = Ensure(Out_ScrewTeachOk);
  694. Out_ScrewTeachOk.Address = "ns=4;s=DB_Communication|FromPC.ScrewTeachOK";
  695. Out_ScrewTeachOk.DataType = "int16";
  696. Out_ScrewTeachOk.Description = Lang.下相机矫正披头的结果1OK2NG;
  697. Out_ScrewFeederIsChanged = Ensure(Out_ScrewFeederIsChanged);
  698. Out_ScrewFeederIsChanged.Address = "ns=4;s=DB_Communication|FromPC.PickNumChange";
  699. Out_ScrewFeederIsChanged.DataType = "int16";
  700. Out_ScrewFeederIsChanged.Description = Lang.供料器发生改变;
  701. // 4. In_* 默认(假定从 PLC 读到 PC,使用 ToPC 前缀)
  702. In_Code = Ensure(In_Code);
  703. In_Code.Address = "ns=4;s=DB_Communication|ToPC.Mes[{0}].Code";
  704. In_Code.DataType = "string";
  705. In_Code.Description = Lang.产品编码;
  706. In_MesCheck = Ensure(In_MesCheck);
  707. In_MesCheck.Address = "ns=4;s=DB_Communication|ToPC.Mes[{0}].Check";
  708. In_MesCheck.DataType = "int16";
  709. In_MesCheck.Description = Lang.Mes交互1获取过站信息当站是否生产2上传本站数据;
  710. In_DowmCameraNum = Ensure(In_DowmCameraNum);
  711. In_DowmCameraNum.Address = "ns=4;s=DB_Communication|ToPC.DowmCameraNum";
  712. In_DowmCameraNum.DataType = "int16";
  713. In_DowmCameraNum.Description = Lang.下相机拍照编号;
  714. In_DowmCameraExe = Ensure(In_DowmCameraExe);
  715. In_DowmCameraExe.Address = "ns=4;s=DB_Communication|ToPC.DowmCameraExe";
  716. In_DowmCameraExe.DataType = "int16";
  717. In_DowmCameraExe.Description = Lang.下相机拍照触发;
  718. In_UpCameraPickNum = Ensure(In_UpCameraPickNum);
  719. In_UpCameraPickNum.Address = "ns=4;s=DB_Communication|ToPC.UpCameraPickNum";
  720. In_UpCameraPickNum.DataType = "int16";
  721. In_UpCameraPickNum.Description = Lang.上相机取料拍照编号;
  722. In_UpCameraPickExe = Ensure(In_UpCameraPickExe);
  723. In_UpCameraPickExe.Address = "ns=4;s=DB_Communication|ToPC.UpCameraPickExe";
  724. In_UpCameraPickExe.DataType = "int16";
  725. In_UpCameraPickExe.Description = Lang.上相机取料拍照触发;
  726. In_UpCameraPutNum = Ensure(In_UpCameraPutNum);
  727. In_UpCameraPutNum.Address = "ns=4;s=DB_Communication|ToPC.UpCameraPutNum";
  728. In_UpCameraPutNum.DataType = "int16";
  729. In_UpCameraPutNum.Description = Lang.上相机锁附组装拍照编号;
  730. In_UpCameraPutExe = Ensure(In_UpCameraPutExe);
  731. In_UpCameraPutExe.Address = "ns=4;s=DB_Communication|ToPC.UpCameraPutExe";
  732. In_UpCameraPutExe.DataType = "int16";
  733. In_UpCameraPutExe.Description = Lang.上相机锁附组装拍照触发;
  734. In_UPCameracheckNum = Ensure(In_UPCameracheckNum);
  735. In_UPCameracheckNum.Address = "ns=4;s=DB_Communication|ToPC.UPCameracheckNum";
  736. In_UPCameracheckNum.DataType = "int16";
  737. In_UPCameracheckNum.Description = Lang.上相机检测拍照编号;
  738. In_UPCameracheckExe = Ensure(In_UPCameracheckExe);
  739. In_UPCameracheckExe.Address = "ns=4;s=DB_Communication|ToPC.UPCameracheckExe";
  740. In_UPCameracheckExe.DataType = "int16";
  741. In_UPCameracheckExe.Description = Lang.上相机检测拍照触发;
  742. In_FixedCameraPickNum = Ensure(In_FixedCameraPickNum);
  743. In_FixedCameraPickNum.Address = "ns=4;s=DB_Communication|ToPC.FixedCameraPickNum";
  744. In_FixedCameraPickNum.DataType = "int16";
  745. In_FixedCameraPickNum.Description = Lang.固定相机取料拍照编号;
  746. In_FixedCameraPickExe = Ensure(In_FixedCameraPickExe);
  747. In_FixedCameraPickExe.Address = "ns=4;s=DB_Communication|ToPC.FixedCameraPickExe";
  748. In_FixedCameraPickExe.DataType = "int16";
  749. In_FixedCameraPickExe.Description = Lang.固定相机取料拍照触发;
  750. In_FixedCameraPutNum = Ensure(In_FixedCameraPutNum);
  751. In_FixedCameraPutNum.Address = "ns=4;s=DB_Communication|ToPC.FixedCameraPutNum";
  752. In_FixedCameraPutNum.DataType = "int16";
  753. In_FixedCameraPutNum.Description = Lang.固定相机锁附组装拍照编号;
  754. In_FixedCameraPutExe = Ensure(In_FixedCameraPutExe);
  755. In_FixedCameraPutExe.Address = "ns=4;s=DB_Communication|ToPC.FixedCameraPutExe";
  756. In_FixedCameraPutExe.DataType = "int16";
  757. In_FixedCameraPutExe.Description = Lang.固定相机锁附组装拍照触发;
  758. In_FixedCameracheckNum = Ensure(In_FixedCameracheckNum);
  759. In_FixedCameracheckNum.Address = "ns=4;s=DB_Communication|ToPC.FixedCameracheckNum";
  760. In_FixedCameracheckNum.DataType = "int16";
  761. In_FixedCameracheckNum.Description = Lang.固定相机检测拍照编号;
  762. In_FixedCameracheckExe = Ensure(In_FixedCameracheckExe);
  763. In_FixedCameracheckExe.Address = "ns=4;s=DB_Communication|ToPC.FixedCameracheckExe";
  764. In_FixedCameracheckExe.DataType = "int16";
  765. In_FixedCameracheckExe.Description = Lang.固定相机检测拍照触发;
  766. In_ProductNum = Ensure(In_ProductNum);
  767. In_ProductNum.Address = "ns=4;s=DB_Communication|ToPC.ProductNum";
  768. In_ProductNum.DataType = "int16";
  769. In_ProductNum.Description = Lang.正在锁附组装编号;
  770. In_RequestPosition = Ensure(In_RequestPosition);
  771. In_RequestPosition.Address = "ns=4;s=DB_Communication|ToPC.RequestPosition";
  772. In_RequestPosition.DataType = "int16";
  773. In_RequestPosition.Description = Lang.请求目标位置;
  774. In_WorkStart = Ensure(In_WorkStart);
  775. In_WorkStart.Address = "ns=4;s=DB_Communication|ToPC.WorkStart";
  776. In_WorkStart.DataType = "int16";
  777. In_WorkStart.Description = Lang.锁附组装开始1;
  778. In_WorkDone = Ensure(In_WorkDone);
  779. In_WorkDone.Address = "ns=4;s=DB_Communication|ToPC.WorkDone";
  780. In_WorkDone.DataType = "int16";
  781. In_WorkDone.Description = Lang.锁附组装结束1OK2NG;
  782. In_PressureValue = Ensure(In_PressureValue);
  783. In_PressureValue.Address = "ns=4;s=DB_DriveControl|AICtrl[1].Status.UserData";
  784. In_PressureValue.DataType = "float";
  785. In_PressureValue.Description = Lang.压力值;
  786. In_ScrewTeachExe = Ensure(In_ScrewTeachExe);
  787. In_ScrewTeachExe.Address = "ns=4;s=DB_Communication|ToPC.ScrewTeachExe";
  788. In_ScrewTeachExe.DataType = "bool";
  789. In_ScrewTeachExe.Description = Lang.触发披头视觉矫正;
  790. In_PickINC = Ensure(In_PickINC);
  791. In_PickINC.Address = "ns=4;s=DB_Communication|ToPC.PickINC";
  792. In_PickINC.DataType = "int16";
  793. In_PickINC.Description = Lang.取一颗螺丝触发信号;
  794. // 说明:若项目中 PlcAddress 的实际属性名或类型与此不同(例如使用枚举、不同字段名),
  795. // 请根据实际类型调整赋值。本方法主要提供合理的默认字符串地址、数据类型及描述,便于后续从配置覆盖。
  796. }
  797. }
  798. }