Ejemplo n.º 1
0
 public CraneCommands(StackerModel master)
 {
     PLC          = master.PLC;
     Settings     = master.Settings;
     Stacker      = master.Stacker;
     OrderManager = master.OrderManager;
     CraneState   = master.CraneState;
 }
Ejemplo n.º 2
0
        //Конструктор класса **********************************************************************************
        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);
        }