湖中仙人 2023-12-13 10:36 采纳率: 11.8%
浏览 7
已结题

PLC监控数据读取没有变化

读取三菱PLC数据D,读取时,读取到到数据总是一组固定值,不明白为什么总是一组相同的数据
下面是参数设置

            dt.Columns.Add(new DataColumn("设备代号", typeof(System.String)));
            dt.Columns.Add(new DataColumn("设备名称", typeof(System.String)));
            dt.Columns.Add(new DataColumn("采数类型", typeof(System.String)));
            dt.Columns.Add(new DataColumn("状态", typeof(System.String)));
            dt.Columns.Add(new DataColumn("IP地址", typeof(System.String)));
            dt.Columns.Add(new DataColumn("端口", typeof(System.String)));

            dt.Rows.Add(new object[] { "01112-005", "H11A1-自动造型一线", "三菱PLC", "未采集", "10.1.0.12", "2003" });//一线造型机
            dataGridView1.DataSource = dt;

            PlcParamsDt = new DataTable();

            PlcParamsDt.Columns.Add(new DataColumn("设备代号", typeof(System.String)));
            PlcParamsDt.Columns.Add(new DataColumn("PlcDeviceType", typeof(System.String))); //数据格式
            PlcParamsDt.Columns.Add(new DataColumn("PlcStartDevice", typeof(System.String)));//PLC取数地址
            PlcParamsDt.Columns.Add(new DataColumn("PlcDeviceNum", typeof(System.String)));  //数据长度
            PlcParamsDt.Columns.Add(new DataColumn("SqlParamName", typeof(System.String)));  //特征编码
            PlcParamsDt.Columns.Add(new DataColumn("DivNum", typeof(System.String)));        //读数因子

            PlcParamsDt.Rows.Add(new object[] { "01112-005", "int", "D900", "2", "模板号", "1" });
            PlcParamsDt.Rows.Add(new object[] { "01112-005", "int", "D901", "2", "开始时间年", "1" });
            PlcParamsDt.Rows.Add(new object[] { "01112-005", "int", "D902", "2", "开始时间月", "1" });
            PlcParamsDt.Rows.Add(new object[] { "01112-005", "int", "D903", "2", "开始时间日", "1" });
            PlcParamsDt.Rows.Add(new object[] { "01112-005", "int", "D904", "2", "开始时间时", "1" });
            PlcParamsDt.Rows.Add(new object[] { "01112-005", "int", "D905", "2", "开始时间分", "1" });
            PlcParamsDt.Rows.Add(new object[] { "01112-005", "int", "D906", "2", "开始时间秒", "1" });

下面是读取数据

        public int Receieve(out byte[] revData, out string sResult)
        {
            sResult = "";
            revData = new byte[bufferSize];
            try
            {  
                int readSize;
                lock (sendStream)
                {
                    readSize = sendStream.Read(revData, 0, bufferSize);
                }
                if (readSize == 0)
                {
                    sResult = "未接收到数据!";
                    return -1;
                }
                sResult = "接收数据成功!";
            }
            catch
            {

            }
            return 0;
        }

但是这个revData每次在执行完 sendStream.Read(revData, 0, bufferSize);后的数据都没有变化,这是为什么?

  • 写回答

0条回答 默认 最新

    报告相同问题?

    问题事件

    • 系统已结题 12月21日
    • 创建了问题 12月13日