Отправить команды записи на последовательный порт с C #? - PullRequest
4 голосов
/ 09 октября 2011

Заранее спасибо за помощь.Я пишу облегченную программу на C # для записи строк в последовательный порт (отправки команд в PLC) для работы, и я не программист.Моя проблема в том, что моя кнопка не отправит линию на последовательный порт.Вот мой код:

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

    namespace WindowsFormsApplication1 {
        public partial class Form1 : Form {

        string command = "Turn Motor";
        SerialPort COM1 = new SerialPort("COM1");

        public Form1() {
            InitializeComponent();
            COM1.Open();

        }

        private void button1_MouseClick(object sender, MouseEventArgs e) {

            COM1.WriteLine(command);

        }

    }

Что я могу сделать, чтобы кнопка button1 отправляла текстовую строку на последовательный порт?Код должен быть максимально простым, так как он запускается только на одной рабочей станции.Я просмотрел все примеры, но не смог адаптировать их под мой код.Я также не хочу откровенно срывать чужой код, чтобы заставить его работать.Любой совет будет принят во внимание.

РЕДАКТИРОВАТЬ: приведенный выше код не все, например, я правильно инициализирую порт.У меня есть другой раздел кода, который правильно получает и обрабатывает строки, это просто отправитель, с которым у меня проблемы.Я также создал метод кнопки с помощью дизайнера форм, поэтому там не должно быть никакого разъединения.

Ответы [ 2 ]

3 голосов
/ 09 октября 2011

Похоже, вы не инициализируете свой Com-порт.Вам необходимо установить BaudRate, Parity, DataBits, StopBits и Handshake собственности.Посмотрите на приведенные выше примеры MSDN для наглядности.Вы можете установить индивидуальность свойства или установить их в конструкторе.

В соответствии с MSDN значениями по умолчанию для вышеуказанных свойств являются:

3 голосов
/ 09 октября 2011

Я бы предложил:

  1. Используйте событие Click вместо события MouseClick.

  2. Если вы только что скопировали свой метод button1_MouseClick из какого-то примера, этот метод, вероятно, неправильно подписан на событие click. Если дважды щелкнуть кнопку в конструкторе Visual Studio, он автоматически настроит метод, подписанный на событие click. Вот куда бы вы положили COM1.WriteLine(command);

  3. Если оба эти предложения неверны, вам, вероятно, нужно получить где-то исключение (если вы не открываете неверный порт). В этом случае вы должны описать эту ошибку в своем вопросе здесь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...