搜档网
当前位置:搜档网 › OPC 访问三菱Q系列PLC方法

OPC 访问三菱Q系列PLC方法

OPC 访问三菱Q系列PLC方法
OPC 访问三菱Q系列PLC方法

技术专题-OPC访问三菱Q系列PLC 方法

Author: ChonggaoYu QQ: Email:tjycg@https://www.sodocs.net/doc/757970320.html, 2011.11.07

一、Q 系列PLC经典配置例:

二、PLC编程器件

三、PLC过程控制程序设计的方法

四、上位机对PLC 数据的读写(控制数据写入,和控制数据的读出)

五、VS008通过OPC server PLC访问的方法

一、Q 系列PLC经典配置例:

二、PLC编程器件

一般情况下,X代表输入继电器,Y代表输出继电器,M代表辅助继电器,SPM 代表专用辅助继电器,T代表定时器,C代表计数器,S代表状态继电器,D代表

注:称重仪表Panther表设定PLC的寄存器地址,表的重量数据可以直接写入编程控制点,PLC程序直接读取就可以了。如何设置?

三、PLC过程控制程序设计的方法

1)手工编写PLC程序

2)通过编程工具,编写T形图,写入PLC。

四、上位机对PLC 数据的读写(控制数据写入,和控制数据的读出)

1)通过编程软件(软件:VS2005/VS2008),调用OPC Server库(Interop.ACTMULTILib.dll,

Interop.ACTSUPPORTLib.dll),向PLC 读出或者写入数据(编程器件),

需要配置OPC Server .软件:MELSOFT Application -> MX component -> Communication Utility.

(opc server也可以访问PLC的数据软件: MELSOFT Application -> MX component -> PLC Monitor Utility).

图Communication Utility.

图PLC Monitor Utility 1/2 监视

图PLC Monitor Utility 2/2 设置值

2)通过组态软件,调用OPC Server库,向PLC 读出或者写入数据(编程器件)。(缺点,组态软件不是针对一种PLC设备,处理速度慢,读写数据速度延迟几秒)

五、VS008通过OPC server PLC访问的方法

5.1 在解决方案中添加opc server dll库

Interop.ACTMULTILib.dll

Interop.ACTSUPPORTLib.dll

5.2 读写程序代码

//1 引用PLC库

using ACTMULTILib; // 引用 PLC 库 for PLC MITSUBISHI

using ACTSUPPORTLib; //引用 PLC 库 for PLC MITSUBISHI

//2定义 PLC Station

ActEasyIFClass PLC_Station = new ActEasyIFClass(); //定义PLC Station

PLC_Station.ActLogicalStationNumber = 1; // Set Logic Station Number //3 关闭打开 PLC Station

PLC_Station.Close();

int intRet = PLC_Station.Open(); // Open PLC

//Check PLC Open Result

if (intRet == 0) // -------------------------PLC Open OK

{

//MessageBox.Show("PLC Open OK!");

}

else// -------------------------------------PLC Open NG

{

Tx_RecData.Text = "PLC Open NG!";

return ;

//MessageBox.Show("PLC Open NG!");

}

// 4 读PLC 控制点值(多个)

int[] intTmp = new int[] { 0, 0, 0, 0 };

if (PLC_Station.ReadDeviceRandom("X60\nX61\nX62\nX63\n", 4, out intTmp[0]) == 0) { //读出正确

Tx_RecData.Text = intTmp[0].ToString() + "," + intTmp[1].ToString() + "," + intTmp[2].ToString() + "," + intTmp[3].ToString();

}

Else //读出出错

{

Tx_RecData.Text = "读PLC 出错";

}

//5 写PLC 控制点(多个)

//intRet = PLC_Station.Close();

int []intTmp = new int[]{0,0,0,0};

string[] stri = TB_WriteValue.Text.Trim().Split(',');

int i=0;

for (; i < stri.Length; i++)

{

intTmp[i] = int.Parse(stri[i].Trim());

}

string StrAdd = Tb_WriteAdd.Text.Trim().Replace(" ","").Replace(",","\n")+"\n";

//eg. StarAdd = "D100\nD101\nD102\nD103\n"; 注意控制点与数值数目一致

//eg. StarAdd = "X60\nX61\n";

intRet = PLC_Station.WriteDeviceRandom(StrAdd, i, ref intTmp[0]);

TB_Status.Text = "";

if (intRet != 0)

{

TB_Status.Text = "Write PLC Error";

}

图读写简单例子

相关主题