​ ​

Форум клана ЧПУшников

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » Форум клана ЧПУшников » Программы для ЧПУ-фрезеров. » Передача УП (gcode) по RS232 на C#


Передача УП (gcode) по RS232 на C#

Сообщений 1 страница 6 из 6

1

Добрый день!
Возможно кто-то сталкивался с такой задачей и имеет соображения/решения при решении похожих проблем (описание ниже).

Есть ЧПУ станок (FANUC Series 0i Mate-TC).
Задача - Загрузка управляющей программы (gcode) через интерфейс RS-232. Обычно такие задачи решаются с помощью DNC-сервера, но у Заказчика он отсутствует как класс и он не собирается его приобретать. Был написан веб-сервис на C# под IIS для возможности загрузки УП из MES-системы.
Загрузка производится с хоста на котором поднят веб-сервер. Веб-сервис открывает COM-порт, далее выполняется небольшая пауза для того, чтобы оператор открыл COM-порт на станке для возможности получения данных.
Это 1-ая проблема, хотелось бы как с FTP - просто загрузить программы и ВСЕ. Но станок не может(?) постоянно держать COM-порт открытым для приема данных. Опять же пауза: маленькая - не успеет нажать открытие порта и часть данных улетит в воздух, большая - трата времени при ожидании начала передачи. Может можно как-то узнать что принимающая сторона готова?
Далее происходит считывание данных локального файла в поток c последующей передачей их в открытый порт.
Проблема 2 - Я вижу, что все данные ушли в поток и закрываю COM-порт, но по факту они еще не все ушли и при закрытии порта происходит потеря "хвоста" файла. Для этого добавил еще паузу 2 мин. для гарантированной передачи данных. Ниже код, он рабочий, но явно г..нокод

Код:
    //Загрузка программы ЧПУ в станок через RS232
    [WebMethod]
    public string uploadFile_viaRS232(int COMPort, int RS232BaudRate, int RS232DataBits, string RS232Parity, int RS232StopBits, string RS232Handshake, string fileName, int pause)
    {
        string Result = "OK";
        string line;
        // Задаем бит четности
        Parity parity = (Parity)System.Enum.Parse(typeof(Parity), RS232Parity);
        // Задаем стоповые биты
        StopBits stopBits = (StopBits)System.Enum.Parse(typeof(StopBits), RS232StopBits.ToString());
        // Объявляем порт
        SerialPort port = new SerialPort("COM" + COMPort.ToString(), RS232BaudRate, parity, RS232DataBits, stopBits);
        // Дополнительные настройки порта
        port.Encoding = System.Text.Encoding.GetEncoding(1252);
        port.DtrEnable = true;
        port.RtsEnable = true;
        port.Handshake = (Handshake)Enum.Parse(typeof(Handshake), RS232Handshake);

        try
        {
            // Открываем порт
            port.Open();
            // Пауза для того, чтобы оператор подтвердил прием данных в ЧПУ
            Thread.Sleep(pause);
            // Считывает содержимое файла в поток
            using (StreamReader streamReader = File.OpenText("c:/cnc_code/" + fileName))
            {
                while ((line = streamReader.ReadLine()) != null)
                {
                    //port.Write(streamReader.ReadToEnd());
                    port.WriteLine(line);
                }
            }
            // Пауза, иначе порт закрывается раньше, чем завершается передача 
            Thread.Sleep(120000);
            // Закрываем порт
            port.Close();
            // Удаляем файл
            File.Delete(@"c:/cnc_code/" + fileName);
        }
        catch (Exception ex) { Result = ex.ToString(); }
        return Result;
    }

0

2

А что Cimco  ил SDNC не работает?

0

3

Имел контакты с Cimco (они даже временной лицензией поделились). Но на мои вопросы ответить не смогли. Основной вопрос это интеграция с MES. В MES к операции производственного заказа привязана программа ЧПУ, которую необходимо загрузить в станок. Т.е. сервер Cimco должен предоставлять веб-сервисы для загрузки УП. И вот этого похоже нет (

0

4

Если на станка есть RJ45, то можно с  FileZilla попробавать. FTP - server - client

0

5

MiRu написал(а):

Если на станка есть RJ45, то можно с  FileZilla попробавать. FTP - server - client

К передаче данных через FTP, Focas у Заказчика вопросов нет - работает.

0

6

Можно DC1/DC4 следит на RS232? Параметр 102.

0

Быстрый ответ

Напишите ваше сообщение и нажмите «Отправить»



Вы здесь » Форум клана ЧПУшников » Программы для ЧПУ-фрезеров. » Передача УП (gcode) по RS232 на C#