OPC 访问三菱Q系列PLC方法

更新时间:2023-09-27 08:53:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

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

Author: ChonggaoYu QQ: Email:tjycg@163.com 2011.11.07

一、Q 系列PLC经典配置例: 二、PLC编程器件

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

四、上位机 对PLC 数据的读写( 控制数据写入,和 控制数据的读出) 五、VS008通过OPC server PLC访问的方法

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

带串口,以太网络,16点输入,16点输出 位置 模块 0 1 2 3 4 5 输出 QY40P 16位 70 X70 CPU 电源 (固定) (固定) Q62P Q02CPU CCLINK 串口 网络 输入 QJ71C24N QJ71E71-100 QJ61BT11N QX40 32位 0 32位 20 32位 40 16位 60 X60 地址 程序访问地址 二、PLC编程器件

一般情况下,X代表输入继电器,Y代表输出继电器,M代表辅助继电器,SPM代表专用辅助继电器,T代表定时器,C代表计数器,S代表状态继电器,D代表数据寄存器,MOV代表传输等。 X 输入继电器 (16位) 输入指示灯显示硬件的实际 ON/OFF状态(ON灯亮,OFF灯灭)。如果编程修改X值,与实际硬件输入不一致时,虽然指示灯不显示,但是在程序中已经有效。 负数是补码形式存储的。 D800-D999 断电可以记忆的寄存器 通过OPCserver读取速度测试,读200个寄存器耗时0.125S Y M T C D 输入继电器 (16位) 辅助继电器 定时器 计数器 数据寄存器 (16位) 注:称重仪表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(\ }

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

Tx_RecData.Text = \; return ;

//MessageBox.Show(\ }

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

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

if (PLC_Station.ReadDeviceRandom(\, 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(\,\)+\; //eg. StarAdd = \注意控制点与数值数目一致 //eg. StarAdd = \

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

TB_Status.Text = \; if (intRet != 0) {

TB_Status.Text = \; }

图读写简单例子

本文来源:https://www.bwwdw.com/article/mm4d.html

Top