使用三菱PLC源码进行PLC读取写入操作

  1. 安装 MX Component 。

  2. 我的安装地址在:

  3. 在这里插入图片描述

  4. 打开 utl 文件夹下的 Communication Settings Utility 执行。
    配置PLC 添加当前需要配置的PLC 注意 logical station Namber 就是程序里需要对接的逻辑站点编号
    在这里插入图片描述
    5.配置选择对应的COM操作选择对应的cpu型型号,然后测试程序是否可以联通,如果联通则可以继续进行。
    5.程序编辑。
    5.1 选择 对应的SDK
    在这里插入图片描述
    在此demo下有众多可以适用的功能。
    在这里插入图片描述
    其中已经包含了数据各种操作,连接关闭等操作。程序引用相关文件。 修改嵌入方式改成否,选择保存本地。
    在这里插入图片描述
    以下就是我简单写了一个操作类:

 
 public static  class MXCommonGet
{
    public static bool IsConnect;
    public static ActUtlType64Lib.ActUtlType64Class axActUtlType1 = new ActUtlType64Lib.ActUtlType64Class();
    //public   MXCommonGet()
    //{
    //    解决因为第三方控件报错,将实例化的对象添加到控件合集中
    //    //((ISupportInitialize)(this.axActUtlType1)).BeginInit();
    //    //this.Controls.Add(axActUtlType1);
    //    //((ISupportInitialize)(this.axActUtlType1)).EndInit();
    //    }

    

    public static  bool ConnectM()
    {
        axActUtlType1.ActLogicalStationNumber = 2;//填设置的逻辑站号,站号是在MXcomponent软件里设置的
        axActUtlType1.ActPassword = "";//密码
        int iReturnCode = axActUtlType1.Open();//尝试连接PLC,如果连接成功则返回值为0
        if (iReturnCode == 0)
        {
            OPCommon.LogWrite.WriteLog("PLC连接成功!");
            IsConnect = true;
            return true;
        }
        else
        {
            OPCommon.LogWrite.WriteLog("PLC连接失败!");
            IsConnect = false;
            return false;
        }
    }
    /// <summary>
    /// 获取前节点数据
    /// </summary>
    /// <param name="PointId"></param>
    /// <returns></returns>
    public static ResultMsg GetValueInPoint(string PointId)
    {
        ResultMsg msg = new ResultMsg();
        try
        {
            if ( IsConnect)
            {
                int relust;
                int iReturnCode = axActUtlType1.GetDevice(PointId, out relust);
                if (iReturnCode == 0)
                {
                    msg.ReturnInt = relust;
                    msg.Success = true;
                }
                else
                {
                    msg.Success = false;
                }
            }
            else
            {
                ConnectM();
                msg.Success = true;
                msg.ReturnInt = 0;
            }
        }
        catch (Exception ex)
        {
            msg.Success = false;
            msg.ReturnInt = 0;
            msg.ErrMsg = "连接出错";
        } 
        return msg; 
    }

    /// <summary>
    /// 设置当前节点数据
    /// </summary>
    /// <param name="PointId">节点编号</param>
    /// <param name="Result"></param>
    /// <returns></returns>
    public static ResultMsg SetValueInPoint(string PointId,int  Result)
    {
        ResultMsg msg = new ResultMsg();
        try
        {
            if ( IsConnect)
            { 
                int iReturnCode = axActUtlType1.SetDevice(PointId, Result);
                if (iReturnCode == 0)
                {
                    msg.ReturnInt = Result;
                    msg.Success = true;
                }
                else
                {
                    msg.Success = false;
                }
            }
            else
            {
                ConnectM();
                msg.Success = true;
                msg.ReturnInt = 0;
            }
        }
        catch (Exception ex)
        {
            msg.Success = false;
            msg.ReturnInt = 0;
            msg.ErrMsg = $"连接出错 {ex.Message}";
        }
        return msg;
    }
    /// <summary>
    /// 关闭当前连接
    /// </summary>
    /// <returns></returns>

    public static ResultMsg   CloseThisMX()
    {
        ResultMsg msg = new ResultMsg();
        if (axActUtlType1 != null)
        {
            int iReturnCode = axActUtlType1.Close();
            if (iReturnCode == 0)
            {
                msg.Success = true;
                msg.ReturnInt = 0;
            }
            else
            {
                msg.Success = false ;
                msg.ReturnInt = iReturnCode;
            }
        }
        else
        {
            msg.Success = false;
            msg.ErrMsg = "数据不存在";
        }
        return msg;
    }
} 

其中 设定与读取的方法中 axActUtlType1.GetDevice2(PointId, out relust); 这个方法获取一个 result是有符号的short数据。
当然 发送的也是一样,当对方穿过来的数据是 16bit数字时,这个时候只能用getdevice2 的这种读取方式。

三菱PLC例程PLC控制器源码资料1110个合集: 1102刨床控制.rar 1105PLC与变频器的RS485通信控制.rar 125吨废纸打包机程序.rar 12头充填机用于灌装泡泡水.rar 12层电梯.rar 12层电梯程序.rar 12层电梯程序.zip 140取样锯.rar 16MR.rar 16t门机程序.rar 16个灯流水灯光控制.rar 2000吨液压机.rar 20074216432582759.rar 20个plc样例程序.rar 2102工业洗衣机程序控制系统.rar 2104中央空调冷冻泵节能运行控制.rar 21FR送料器FX.rar 22层电梯的程序,有输入输出说明.rar 22层电梯的程序.rar 22层程序有输入输出说明.rar 24或32块标准砖程序(变频器)来回摆动.rar 25个三菱PLC程序.rar 2楼A后车.rar 2轴伺服控制(AD75-P2)压焊机 ( 带人机 有注释多点定位控制).rar 3M程序.rar 3层杂物电梯.rar 3层杂物电梯(带全注释).rar 3种单按钮起挺控制程序.rar 3色平网印花机.rar 400吨冲床.rar 400吨压机.rar 400吨打包机(俄罗斯).rar 400吨打包机(俄罗斯).rar 4Y×16X键盘扫描程序.rar 4个三菱4DA驱动15个压延电机和序.rar 4分頻電路.rar 4台电机启动程序.rar 4台电机启动程序(自编).rar 5111821044626730@灭菌柜plc程序.rar 5111822485310638@三菱fx2控制货梯程序2.zip 5111822485318002@三菱fx2控制货梯程序1.zip 5112323512966280@三菱fx+沈阳蓝光调速器的plc电梯程序.zip 611250033364376@三菱程序及触摸屏程序实例.rar 63吨小冲床.rar 64点发泡机.rar 66g自动冲床PG14-17改.rar 6TPH超纯水设备PLC程序.rar 6_裁切机带伺服.rar 7-16带网络.rar 75mm押出机程序.rar 800t铝材挤压机.rar 9K抽屉框(XP08104).rar 9层9站电梯程序.rar A&G朔膜裹包机.rar A1S68AD.zip A2SH(S1) PLC 程序.rar A700toFX2N寫入頻率.rar ABB用滑台.rar ABB用滑台FX程序.rar AD,DA模拟量的读入和写出.rar ADD加法指令.rar Analog Read.zip Analog Write.zip A系列PLC编程实例(线路板自动叠合拆解线).rar Brick Crane v5.zip BVDS包装VDS.rar CAK6150车床梯形图程序,用的三菱E60系统,带中文注释。.rar CC-Link 主从程序.rar CCLINK网络通讯.rar cnc程序.rar Configuring CC-Link.zip CRC运算.rar Daylight Savings Time 2007 US.zip Daylight Savings Time example.zip DDM4A四位7段码显示器.rar DST for FX.zip EF-FST减震.rar F-6升降机程序mov.rar F900触摸交通监控系统(红绿灯).rar Fat Coater b.zip FPC 5层自动换架式收板机(PLC+HMI+电气图纸)绝对原版!!.rar FR-A700-FX3U 通信程式.rar FR-A700-FX3U通信程式.rar FX PLC程序 二用一备恒压供水程序及图纸.zip FX-VLT通讯程序(Fx2n).rar FX0S程序.rar fx1n-40mt控制两台伺服程序.rar FX1N-485 200718测试正常.rar FX1N-60MR-001四柱粉末成型液压机PLC控制系统程序.rar FX1NPLC和富士伺服位置控制.rar FX1N_5DM.rar FX1N与梅物勒-托利多称重仪表(XK3123)通信.rar FX1N伺服定位程式(完整注释,JOG,定长,定角度+绝对原创).rar fx1n伺服定位程式.rar Fx1N喷砂机程序.rar FX1N在自动胶带分切机上的应用程序(有注解).rar FX1N拖伺服(焊接).rar FX1S-30MR程序.rar FX1S-30MT.rar FX1S30家用程序.rar FX1S卷纸机程序.rar FX1S小程序.rar FX1S带2台步进电机.rar FX1S电梯扶梯节能改进带注解(非变频节能).rar FX2N 33个程序.rar Fx2n 485通讯源程序.rar FX2N communi
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值