Jump to content
Форум по продукции MOXA

raven_2022

Пользователи
  • Posts

    5
  • Joined

  • Last visited

Posts posted by raven_2022

  1. и снова, здравствуйте!

    вопрос. для определенности -  private void button1_Click(object sender, EventArgs e)

    где в коде задается № порта МОХа, на которые подается сигнал?

    и какие допустимые значения для данной переменной?

    заранее спасибо

     

     

  2. всем добрый день!

    мне тут коллеги подтянули пример:

    судя по комментариям - из тех, что поставляется на компакт-диске вместе с устройствами МОХА

    если у кого  похожая проблема - велкам:

    Цитата

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Windows.Forms;

    using MOXA_CSharp_MXIO;

    namespace WinFormsApp211
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }

            private void button1_Click(object sender, EventArgs e)
            {
                const UInt16 DO_DIRECTION_DO_MODE = 0;

                UInt16 Port = 502;

                int ret;
                Int32[] hConnection = new Int32[1];

                string IPAddr = "192.168.91.42";

                //string Password = "";
                string Password = "root1234";

                UInt32 Timeout = 5000;
                UInt32 i;
                UInt16 wIndex;
                UInt32 uiGetInput = 0;

                {
                    ret = MXIO_CS.MXEIO_Init();


                  //  Console.WriteLine("MXEIO_E1K_Connect IP={0}, Timeout={1}, Password={2}", IPAddr, Timeout, Password);
                    ret = MXIO_CS.MXEIO_E1K_Connect(System.Text.Encoding.UTF8.GetBytes(IPAddr), Port, Timeout, hConnection, System.Text.Encoding.UTF8.GetBytes(Password));

                    byte[] bytCheckStatus = new byte[1];
                    ret = MXIO_CS.MXEIO_CheckConnection(hConnection[0], Timeout, bytCheckStatus);


                    byte bytCount = 0, bytStartChannel = 0;

                    //Get DIO Direction Status
                    UInt16[] wGetDOMode = new UInt16[4];        //Get DO Direction Mode
                    UInt16[] wSetDO_DOMode = new UInt16[2];     //Set DO Direction DO Mode
                    UInt16[] wSetDO_PulseMode = new UInt16[2];  //Set DO Direction Pulse Mode
                    UInt16[] wGetDIMode = new UInt16[8];        //Get DI Direction Mode
                    UInt16[] wSetDI_DIMode = new UInt16[4];     //Set DI Direction DI Mode
                    UInt16[] wSetDI_CounterMode = new UInt16[4];//Set DI Direction Counter Mode
                    UInt16 wDI_DI_MODE = 0;                     //DI Direction DI Mode Value
                    UInt16 wDO_DO_MODE = 0;                     //DO Direction DO Mode Value

                    Int32 dwShiftValue;


                    bytCount = 2;
                    bytStartChannel = 0;

                    bytCount = 2;
                    bytStartChannel = 0;
                    for (i = 0; i < bytCount; i++)
                        wSetDO_DOMode[i] = DO_DIRECTION_DO_MODE;
                    ret = MXIO_CS.E1K_DO_SetModes(hConnection[0], bytStartChannel, bytCount, wSetDO_DOMode);

                    bytCount = 2;
                    bytStartChannel = 0;
                    ret = MXIO_CS.E1K_DO_GetModes(hConnection[0], bytStartChannel, bytCount, wSetDO_DOMode);

                    UInt32 dwSetDOValue = 0x0003;
                    ret = MXIO_CS.E1K_DO_Writes(hConnection[0], bytStartChannel, bytCount, dwSetDOValue);

                    bytCount = 2;
                    bytStartChannel = 0;
                    UInt32[] dwGetDOValue = new UInt32[1];
                    ret = MXIO_CS.E1K_DO_Reads(hConnection[0], bytStartChannel, bytCount, dwGetDOValue);

                    ret = MXIO_CS.MXEIO_Disconnect(hConnection[0]);

                    MXIO_CS.MXEIO_Exit();

                }


            }

            private void button2_Click(object sender, EventArgs e)
            {

                const UInt16 DO_DIRECTION_DO_MODE = 0;

                UInt16 Port = 502;

                int ret;
                Int32[] hConnection = new Int32[1];

                string IPAddr = "192.168.91.42";

                //string Password = "";

                string Password = "root1234";

                UInt32 Timeout = 5000;
                UInt32 i;
                UInt16 wIndex;
                UInt32 uiGetInput = 0;

                {
                    ret = MXIO_CS.MXEIO_Init();


                //    Console.WriteLine("MXEIO_E1K_Connect IP={0}, Timeout={1}, Password={2}", IPAddr, Timeout, Password);
                    ret = MXIO_CS.MXEIO_E1K_Connect(System.Text.Encoding.UTF8.GetBytes(IPAddr), Port, Timeout, hConnection, System.Text.Encoding.UTF8.GetBytes(Password));

                    byte[] bytCheckStatus = new byte[1];
                    ret = MXIO_CS.MXEIO_CheckConnection(hConnection[0], Timeout, bytCheckStatus);


                    byte bytCount = 0, bytStartChannel = 0;
                    //Get DIO Direction Status
                    UInt16[] wGetDOMode = new UInt16[4];        //Get DO Direction Mode
                    UInt16[] wSetDO_DOMode = new UInt16[2];     //Set DO Direction DO Mode
                    UInt16[] wSetDO_PulseMode = new UInt16[2];  //Set DO Direction Pulse Mode
                    UInt16[] wGetDIMode = new UInt16[8];        //Get DI Direction Mode
                    UInt16[] wSetDI_DIMode = new UInt16[4];     //Set DI Direction DI Mode
                    UInt16[] wSetDI_CounterMode = new UInt16[4];//Set DI Direction Counter Mode
                    UInt16 wDI_DI_MODE = 0;                     //DI Direction DI Mode Value
                    UInt16 wDO_DO_MODE = 0;                     //DO Direction DO Mode Value

                    Int32 dwShiftValue;


                    bytCount = 2;
                    bytStartChannel = 0;

                    bytCount = 2;
                    bytStartChannel = 0;
                    for (i = 0; i < bytCount; i++)
                        wSetDO_DOMode[i] = DO_DIRECTION_DO_MODE;
                    ret = MXIO_CS.E1K_DO_SetModes(hConnection[0], bytStartChannel, bytCount, wSetDO_DOMode);

                    bytCount = 2;
                    bytStartChannel = 0;
                    ret = MXIO_CS.E1K_DO_GetModes(hConnection[0], bytStartChannel, bytCount, wSetDO_DOMode);

                    UInt32 dwSetDOValue = 0x0000;
                    ret = MXIO_CS.E1K_DO_Writes(hConnection[0], bytStartChannel, bytCount, dwSetDOValue);

                    bytCount = 2;
                    bytStartChannel = 0;
                    UInt32[] dwGetDOValue = new UInt32[1];
                    ret = MXIO_CS.E1K_DO_Reads(hConnection[0], bytStartChannel, bytCount, dwGetDOValue);

                    ret = MXIO_CS.MXEIO_Disconnect(hConnection[0]);

                    MXIO_CS.MXEIO_Exit();

                }


            }

        }
    }
     

     

     еще нужна библиотека MXIO_NET.dll версия 1,10,0,0 но уж очень здоровая. если можно, добавьте ссылку на скачивание

    MXIO.cs

  3. Цитата

    Добрый день! А какой пример ожидается? Запись нужного регистра по Modbus? Или что?

    здравствуйте!

    мое руководство специализируется на программировании в MS SQL

    оно  изложило задачу так:

    подключиться к устройству (контроллер МОХА1242 ) по известному ip-адресу/логину/паролю!

     записать в первый регистр  1 - есть ток, лампочка горит

    записать в то же регистр 0 - тока нет

    отключиться от устройства.

     

     

  4. всем добрый день!

    после 10 лет работы с MS SQL Srv/C#/Ms Office перебросили на МОХА.

    чтобы понять, что и как, нужно подключиться к контроллеру МОХА 1242 подать команду (зажечь лампочку)

    подать 2-ю команду (выключить лампочку) и отключиться.

    в общем, аналог "Hello, world!" 

    нужна ссылка на пример.

    дальше - разберусь сам.

    заранее спасибо

     

×
×
  • Create New...