0230204_FZLH_upperpc/fuqing/Nanji_Island/CModbusDll.cs

71 lines
2.0 KiB
C#
Raw Permalink Normal View History

2023-07-26 01:26:19 +00:00
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Nanji_Island
{
class CModbusDll
{
public static byte[] WriteDO(int addr, int io, bool openclose)
{
byte[] src = new byte[8];
src[0] = (byte)addr;
src[1] = 0x05;
src[2] = 0x00;
src[3] = (byte)io;
src[4] = (byte)((openclose) ? 0xff : 0x00);
src[5] = 0x00;
ushort crc = CMBRTU.CalculateCrc(src, 6);
src[6] = (byte)(crc & 0xff);
src[7] = (byte)(crc >> 8);
return src;
}
public static byte[] WriteAllDO(int addr, int ionum, bool openclose)
{
byte[] src = new byte[10];
src[0] = (byte)addr;
src[1] = 0x0f;
src[2] = 0x00;
src[3] = 0x00;
src[4] = 0x00;
src[5] = (byte)ionum;
src[6] = 0x01;
src[7] = (byte)((openclose) ? 0xff : 0x00);
ushort crc = CMBRTU.CalculateCrc(src, 8);
src[8] = (byte)(crc & 0xff);
src[9] = (byte)(crc >> 8);
return src;
}
public static byte[] ReadDO(int addr, int donum)
{
byte[] src = new byte[8];
src[0] = (byte)addr;
src[1] = 0x01;
src[2] = 0x00;
src[3] = 0x00;
src[4] = 0x00;
src[5] = (byte)donum;
ushort crc = CMBRTU.CalculateCrc(src, 6);
src[6] = (byte)(crc & 0xff);
src[7] = (byte)(crc >> 8);
return src;
}
public static byte[] ReadDI(int addr, int dinum)
{
byte[] src = new byte[8];
src[0] = (byte)addr;
src[1] = 0x02;
src[2] = 0x00;
src[3] = 0x00;
src[4] = 0x00;
src[5] = (byte)dinum;
ushort crc = CMBRTU.CalculateCrc(src, 6);
src[6] = (byte)(crc & 0xff);
src[7] = (byte)(crc >> 8);
return src;
}
}
}