Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Работа с последовательным портом 
:(
    Опции темы
arkonst
Дата 31.10.2007, 16:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 54
Регистрация: 31.10.2007

Репутация: 1
Всего: 1



Коллеги...подскажите пожалуйста.Как из VS2005 в C#,работать споследовательным портом,если можно по-подробней.
Может у кого нить есть хорошее описание пространств имен System.IO.Ports ? а то никакой информации не нашел,желательно с примерами.
Проблема в общем вот какая, нужно написать программу на C# для работы с промышленным контроллером нашего 
производства(модуль вода -вывода).Этот модуль работает в протоколе modbus rtu.Програма должна выполнять его первоначальную настройку.То есть подключаем его к COM порту компа,запускаем прогу и настраиваем...меняем уставки
вводим в ячейки памяти контроллера необходимые значения,а так же считываем с него информацию разного рода из его ячеек.Все это надо делать через последовательные порт,а как с ним работать в C#???
и еще...может кто вообще уже с таким случаем сталкивался....именно с контроллером работал...то примеры кода C# мне очень бы помогли.
PM MAIL   Вверх
AnTON_G
Дата 31.10.2007, 17:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 26.10.2007

Репутация: нет
Всего: нет



Я не особо спец но я в свое время писал прогу которая связывалась с GSM модемом и принимала SMS ниже привел код который быстро накидал по памяти, описал основные моменты а особо глубоко сам не лазил по этому namespace. Там если будешь из под событий "прием данных из порта" выводить данные на форму нужно будет через делегат обратного вызова иначе будет крос потоковая ошибка.
Код

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.IO.Ports;

namespace WindowsApplication2
{
    public partial class Form1 : Form
    {
        SerialPort comPort = new SerialPort();
        public Form1()
        {
            InitializeComponent();
            comPort.DataReceived += new SerialDataReceivedEventHandler(comPort_DataReceived);//событие пришли данные в порт
            comPort.PinChanged += new SerialPinChangedEventHandler(comPort_PinChanged);// поменялось состояние служебных линий
        }

        void comPort_PinChanged(object sender, SerialPinChangedEventArgs e)
        {
            comPort.CDHolding;//получаешь true если -10В но надо уточнить
            comPort.CtsHolding;//получаешь true если -10В но надо уточнить
            comPort.DsrHolding;//получаешь true если -10В но надо уточнить
            comPort.DtrEnable = true;//выставляет если не ошибаюсь -10В но надо уточнить
            comPort.RtsEnable = true;//выставляет если не ошибаюсь -10В но надо уточнить
        }

        void comPort_DataReceived(object sender, SerialDataReceivedEventArgs e)
        {
            byte[] b = new byte[comPort.BytesToRead];
            comPort.Read(b, 0, b.Length);//читает все байты которые есть в буфере обмена
            string s1 = comPort.ReadExisting();//читеат все байты и переводит их в стоку кодировку можно задать так
                                                //comPort.Encoding = Encoding.Unicode;
            string s2 = comPort.ReadLine();//читает байты по ка не встретиться набор символов которые записаны в 
                                           // comPort.NewLine = "\n"; например перевод каретки
        }

        private void button1_Click(object sender, EventArgs e)
        {
            comPort.PortName = "COM1";
            comPort.BaudRate = 9600;
            comPort.Parity = Parity.None;
            comPort.Handshake = Handshake.None;
        }
    }
}

PM MAIL   Вверх
Freak_FB
Дата 9.11.2007, 14:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ктулхувед
**


Профиль
Группа: Участник
Сообщений: 296
Регистрация: 13.10.2006

Репутация: 1
Всего: 4



Работаю с COM-портом тоже. В данное время пишу программку, которая будет общаться с устройством, посылая запросы, и принимая ответы. Только начал писать, но начало хорошее - можешь использовать.
Код прилагаю.

Присоединённый файл ( Кол-во скачиваний: 69 )
Присоединённый файл  Serial.rar 30,49 Kb


--------------------
user posted image
user posted image
Тонет Ктулху, все медведы горят в огне.
Я Креведко, очень страшно сегодня мне.

PM MAIL ICQ Skype GTalk Jabber   Вверх
arkonst
  Дата 14.11.2007, 10:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 54
Регистрация: 31.10.2007

Репутация: 1
Всего: 1



спасибо блин большое...
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.0407 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.