终端一体化运控平台
Você não pode selecionar mais de 25 tópicos Os tópicos devem começar com uma letra ou um número, podem incluir traços ('-') e podem ter até 35 caracteres.
 
 
 

80 linhas
2.4 KiB

  1. using BPASmartClient.MorkCL.Model.Control;
  2. using System;
  3. using System.Collections.Generic;
  4. using System.Linq;
  5. using System.Text;
  6. using System.Threading.Tasks;
  7. namespace BPASmartClient.MorkCL.Server
  8. {
  9. /// <summary>
  10. /// 机器人服务类
  11. /// </summary>
  12. internal class RobotServer : RobotSet, IModbus
  13. {
  14. public void Init(string IP = "", int Port = 502, string PortName = "")
  15. {
  16. MyModbus = new ModbusTcp();
  17. MyModbus.WithModbusTcp(IP, Port).UseConnected(() =>
  18. {
  19. TaskManage.GetInstance.StartLong(new Action(() =>
  20. {
  21. MyModbus.Read<bool[]>("M600".ToModbusAdd(), 9).OnSuccess(s =>
  22. {
  23. for (byte i = 0; i < 3; i++)
  24. {
  25. MaterialPouringRequest[i] = s[i * 3];
  26. MaterialPouringComplete[i] = s[i * 3 + 1];
  27. DiningOutRequest[i] = s[i * 3 + 2];
  28. }
  29. });
  30. MyModbus.Read<bool[]>("M630".ToModbusAdd(), 12).OnSuccess(s =>
  31. {
  32. for (byte i = 0; i < s.Length; i++) WarehousingComplete[i] = s[i];
  33. });
  34. MyModbus.Read<ushort>("GI5".ToModbusAdd(), 1).OnSuccess(s => { TaskFeedback = (RobotMainTask)s; });
  35. Thread.Sleep(10);
  36. }), $"机器人服务-{IP}", true);
  37. });
  38. }
  39. private void RobotInit()
  40. {
  41. if (EnableState && ProgramRuning) return;
  42. //if (!CR_Data.Home)
  43. //{
  44. // Noticer.GetInstance().Show("煮面机器人初始化失败,机器人不在原点");
  45. // return;
  46. //}
  47. while (!EnableState || !ProgramRuning)
  48. {
  49. //复位
  50. RobotReset = true;
  51. Thread.Sleep(1000);
  52. RobotReset = false;
  53. Thread.Sleep(500);
  54. if (!EnableState)
  55. {
  56. //上使能
  57. RobotEnable = true;
  58. Thread.Sleep(1000);
  59. RobotEnable = false;
  60. Thread.Sleep(500);
  61. }
  62. //启动
  63. RobotStart = true;
  64. Thread.Sleep(1000);
  65. RobotStart = false;
  66. Thread.Sleep(1000);
  67. }
  68. }
  69. }
  70. }