main.py 4.0 KB

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