main.py 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146
  1. from models.billet_counter import Counter
  2. from models.data_sender import Sender
  3. from models.billet_trace_pusher import Trace_pusher
  4. from utils.s7data import S7data, S7Client
  5. from utils.mqttdata import Mqttdata, MqttClient
  6. from utils.logger import Logger
  7. from models.data_forward import *
  8. from models.parking import Parking
  9. from models.overhead_crane import Crane
  10. from models.data_checker import Checker
  11. from models.billet_stacks import Stack_manager, Billet_stack
  12. from models.jiaoban import Banci
  13. import pymysql
  14. ##############################################################
  15. # 日志配置
  16. logger_5 = Logger('5#')
  17. logger_5.file_on_with_rotation('logs/5#log.log')
  18. # logger_5.screen_on()
  19. logger_6 = Logger('6#')
  20. logger_6.file_on_with_rotation('logs/6#log.log')
  21. # logger_6.screen_on()
  22. logger_sender = Logger('sender')
  23. logger_sender.file_on_with_rotation('logs/sender_log.log')
  24. # logger_sender.screen_on()
  25. logger_trace = Logger('trace')
  26. logger_trace.file_on_with_rotation('logs/trace_log.log')
  27. # logger_trace.screen_on()
  28. ##############################################################
  29. # S7数据源配置
  30. s7_5 = S7Client()
  31. s7_5.connect('192.168.1.215', 0, 0)
  32. data_5 = S7data(r"conf/5#nodes.csv")
  33. data_5.set_S7Client(s7_5)
  34. data_5.set_logger(logger_5)
  35. data_5.auto_update_group()
  36. logger_5.info('[PREPARE]5#机PLC连接成功')
  37. s7_6 = S7Client()
  38. s7_6.connect('192.168.1.216', 0, 0)
  39. data_6 = S7data(r"conf/6#nodes.csv")
  40. data_6.set_S7Client(s7_6)
  41. data_6.set_logger(logger_6)
  42. data_6.auto_update_group()
  43. logger_6.info('[PREPARE]6#机PLC连接成功')
  44. ##############################################################
  45. # MQTT数据源配置
  46. mqtt_mes = MqttClient('python-mqtt-biller_digitalization_test333', 'readonly', '1qazxsw@')
  47. mqtt_mes.connect('192.168.12.201', 1883)
  48. mqtt_mes.loop_start()
  49. data_mes = Mqttdata()
  50. data_mes.set_mqtt_client(mqtt_mes)
  51. logger_5.info('[PREPARE]与MES使用MQTT连接成功')
  52. logger_6.info('[PREPARE]与MES使用MQTT连接成功')
  53. mqtt_web = MqttClient('python-mqtt-992_test333')
  54. mqtt_web.connect('192.168.0.119', 1883)
  55. mqtt_web.loop_start()
  56. data_web = Mqttdata()
  57. data_web.set_mqtt_client(mqtt_web)
  58. logger_sender.info('[PREPARE]与WEB业务平台使用MQTT连接成功')
  59. ##############################################################
  60. # MYSQL数据库连接
  61. db = pymysql.connect(host='localhost', port=3306, user='root', password='1qaz2wsx@..', database='steel_production_db')
  62. ##############################################################
  63. # 数据发送服务
  64. sender = Sender(logger_sender)
  65. #sender.set_mqtt_client(mqtt_web)
  66. #sender.set_mysql_client(db)
  67. # debug设置
  68. sender.http_flag = False
  69. sender.mysql_flag = True
  70. ##############################################################
  71. # 分炉分坯服务
  72. position_5 = [10650, 11600, 12830, 13924, 15237, 16440, 17757, 18935]
  73. position_6 = [8084, 9303, 10618, 11998, 13040, 14409, 15584, 16853]
  74. pusher_5 = Trace_pusher(data_5, logger_5, sender, position_5, data_web.make_point('5#手动换炉'), True)
  75. pusher_6 = Trace_pusher(data_6, logger_6, sender, position_6, data_web.make_point('6#手动换炉'), hostmove_flag=True)
  76. flfp_5 = Counter(data_mes, data_5, 5, logger_5, sender, pusher_5)
  77. flfp_6 = Counter(data_mes, data_6, 6, logger_6, sender, pusher_6)
  78. ##############################################################
  79. # 堆垛管理服务
  80. stack_manager = Stack_manager()
  81. stack_manager.add_stack('501', '5', data_5)
  82. stack_manager.add_stack('601', '6', data_5, -170)
  83. ##############################################################
  84. # 停车位检测服务
  85. parking = Parking(data_5, sender)
  86. ##############################################################
  87. # 天车跟踪服务
  88. crane = Crane(data_5, pusher_5, pusher_6, parking, stack_manager, sender, logger_trace)
  89. ##############################################################
  90. # 数据警报服务
  91. checker = Checker(data_5, data_6, logger_sender)
  92. checker.async_start_check()
  93. ##############################################################
  94. # 自动交班服务
  95. banci_5 = Banci(data_5, sender, logger_5, '5')
  96. banci_6 = Banci(data_6, sender, logger_6, '6')
  97. ##############################################################
  98. # 数据转发服务
  99. forward_5 = Forward(data_5, sender, True, '5')
  100. forward_5.start_auto_forward()
  101. forward_6 = Forward(data_6, sender, False, '6')
  102. forward_6.start_auto_forward()