public CraneCommands(StackerModel master) { PLC = master.PLC; Settings = master.Settings; Stacker = master.Stacker; OrderManager = master.OrderManager; CraneState = master.CraneState; }
//Конструктор класса ********************************************************************************** public StackerModel() { //Инициализируем хранилище настроек Settings = new SettingsKeeper(); //Создаем менеджер заявок OrderManager = new OrdersManager(this); //Загружаем таблицы координат ячеек string path = Environment.CurrentDirectory + "\\" + Settings.CellsFile; Stacker = File.Exists(path) ? new CellsGrid(path) : new CellsGrid(Settings.StackerDepth, Settings.StackerHight); try { //создаем контроллер PLC = new Controller(Settings.ComPort); //временно включаем ручной режим PLC.WriteDword(8, 1); //Записываем максимальные значения координат PLC.WriteDword(10, Settings.MaxX); PLC.WriteDword(12, Settings.MaxY); //и максимальные значения ячеек PLC.WriteDword(14, 29); PLC.WriteDword(16, 16); //записываем максимальный вес PLC.WriteDword(18, Settings.MaxWeight); IsConnected = true; } catch (Exception ex) { MessageBox.Show(ex.Message, caption: "Ошибка открытия порта"); } //включаем мониторинг состояния крана CraneState = new CraneWatcher(PLC); //и его управление Crane = new CraneCommands(this); }