c# 三菱MC3E 批量读取通用方法

public void BatchRead(BatchEntity entity)
        {
            List<byte> bytes = new List<byte>
            {
                0x50,0x00,
                0x00,
                0xFF,
                0xFF,
                0x03,
                0x00,
                0x0C,0x00,  //数据长度
                0x10,0x00,
                0x01,0x04,  //操作指令 批量读取
                0x00,0x00   //子命令 字操作
            };
            //只有是位操作时才会修改 子命令
            if (entity.IsBit)
            {
                bytes[13] = 0x01;
            }

            //地址处理 起始地址如果为3则需要转化为 00 00 03
            List<byte> data = new List<byte>();
            if (entity.Area == Area.X || entity.Area == Area.Y)
            {
                var address = entity.StartAddress!.PadLeft(6, '0');
                for (int i = 0; i < 6; i += 2)
                {
                    var str = address[i].ToString() + address[i + 1].ToString();
                    //转化为16进制的字节
                    data.Add(Convert.ToByte(str, 16));
                }
                //小端处理 
                data.Reverse();
            }
            else
            {
                int address = int.Parse(entity.StartAddress!);
                data.Add((byte)(address % 256));
                data.Add((byte)(address / 256 % 256));
                data.Add((byte)(address / 256 / 256 % 256));
            }
            bytes.AddRange(data);
            //添加软元件区
            bytes.Add((byte)entity.Area);
            //添加读取长度
            ushort len = (ushort)entity.ReadLength;
            bytes.Add(BitConverter.GetBytes(len)[0]);
            bytes.Add(BitConverter.GetBytes(len)[1]);

            //发送报文
            socket.Send(bytes.ToArray());
        }


/*************************BatchEntity 类********************************/
    /// <summary>
    /// 成批读取的实体
    /// </summary>
    public class BatchEntity
    {
        public Area Area { get; set; }  //区域
        public string? StartAddress { get; set; }   //起始地址
        public int ReadLength { get; set; } //读取长度
        /// <summary>
        /// 子命令(T为位操作 F为字操作)
        /// </summary>
        public bool IsBit { get; set; }
    }

/***************************调用过程**********************************/
Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
            socket.Connect("192.168.1.3", 6000);

//实例化库
            MC3E mC = new MC3E(socket);


 //读取Y2 的前四位
                BatchEntity y = new BatchEntity
                {
                    Area = Area.Y,
                    StartAddress = "0",
                    ReadLength = 4,
                    IsBit = true
                };

                //调用批量读取的方法 调用最上面的方法
                mC.BatchRead(y);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
优软MC3系统是一款先进的管理系统,旨在帮助企业实现高效的运营和管理。以下是该系统的操作说明。 首先,用户需要登录进入系统,输入正确的用户名和密码即可进入系统主界面。主界面会显示各种功能模块的快捷方式和相关信息,用户可以根据自己的需求选择相应的功能模块。 系统提供了多种功能模块,如订单管理、库存管理、财务管理等。用户可以根据自己的需求选择相应的模块进行操作。例如,如果需要进行订单管理,用户可以点击订单管理模块,系统将跳转到订单管理界面。 在订单管理界面,用户可以查看已有的订单信息,并进行相关的操作,如新增订单、修改订单、删除订单等。用户可以根据需求进行相应的操作,并及时保存修改的信息。 库存管理模块可以帮助用户实时掌握企业的库存情况。用户可以通过该模块查看库存的数量、位置等信息,并可以进行库存的调整和盘点操作。用户可以根据库存情况做出相应的决策,以保证供应链的畅通。 财务管理模块提供了企业资金流和财务情况的相关信息。用户可以查看企业的财务报表、账户余额等信息,并可以进行资金的收支管理。该模块还可以帮助用户进行财务分析和预测,以便做出合理的财务决策。 总之,优软MC3系统操作简单方便,提供了多种功能模块,帮助企业实现高效的运营和管理。用户只需根据自己的需求选择相应的功能模块,并按照系统提示进行相关的操作即可。系统还提供了在线帮助和技术支持,用户在使用过程中遇到问题可随时寻求帮助。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值