倍福mySQL通讯_C#和倍福PLC之间的通讯控制
1.新建项目并引用TwinCAT动态链接库
2.引用类,并编写倍福控制的相关对象
1 usingSystem;2 usingSystem.Collections;3 usingSystem.Collections.Generic;4 usingSystem.Linq;5 usingSystem.Text;6 usingTwinCAT.Ads;7
8
9 namespaceProject_V1._001_Data10 {11 public classBeckhoff_PLC12 {13
14
15 #region 基本对象定义
16 ///
17 ///创建Ads对象18 ///
19 public static TwinCAT.Ads.TcAdsClient _adsClient = newTcAdsClient();20
21 ///
22 ///定义连接PLC的AMSNetID23 ///
24 public static string string_AmsNetID = "192.168.0.122.1.1";25
26
27 ///
28 ///定义连接PLC的端口号29 ///TwinCAT2,端口号801;TwinCAT3,端口号为85130 ///
31 //public static int iPort = 801;
32 public static int iPort = 851;33
34
35 ///
36 ///PLC连接成功的标志37 ///
38 public static bool bConnectToBeckhoffOK = false;39
40
41 public static ArrayList notificationHandles = newArrayList();42 #endregion
43
44 #region 函数定义
45 ///
46 ///连接到PLC47 ///
48 public static voidConnectPLC()49 {50 try
51 {52 //_adsClient.Connect(string_AmsNetID, iPort);
53 _adsClient.Connect(iPort);54 bConnectToBeckhoffOK = true;55
56 }57 catch
58 {59 bConnectToBeckhoffOK = false;60 }61 }62
63 ///
64 ///读取double类型的变量,非实时刷新65 ///
66 ///
67 ///
68 public static double ReadDouble(stringPlcVariableName)69 {70 double dResult = 0;71 try
72 {73 int iHandleTemp =_adsClient.CreateVariableHandle(PlcVariableName);74 dResult = (double)(_adsClient.ReadAny(iHandleTemp, typeof(double)));75 _adsClient.DeleteVariableHandle(iHandleTemp);76 }77 catch { return 0; }78 returndResult;79 }80
81 ///
82 ///根据PLC变量名,写PLC变量83 ///
84 ///
85 ///
86 public static void WriteVariable(string PlcVariableName, doubledResult)87 {88 try
89 {90 int iHandleTemp =_adsClient.CreateVariableHandle(PlcVariableName);91 _adsClient.WriteAny(iHandleTemp, dResult);92 _adsClient.DeleteVariableHandle(iHandleTemp);93 }94 catch{ }95 }96
97 ///
98 ///根据PLC变量名,写PLC变量99 ///
100 ///
101 ///
102 public static void WriteVariable(string PlcVariableName, boolbResult)103 {104 try
105 {106 int iHandleTemp =_adsClient.CreateVariableHandle(PlcVariableName);107 _adsClient.WriteAny(iHandleTemp, bResult);108 _adsClient.DeleteVariableHandle(iHandleTemp);109 }110 catch{ }111 }112
113
114 #endregion
115
116 }117 }
3.主程序中直接调用倍福控制类
using System;using System.Collections;using System.Collections.Generic;using System.Linq;using System.Text;using TwinCAT.Ads;
namespace Project_V1._001_Data{ public class Beckhoff_PLC {
#region 基本对象定义 /// /// 创建Ads对象 /// public static TwinCAT.Ads.TcAdsClient _adsClient = new TcAdsClient();
/// /// 定义连接PLC的AMSNetID /// public static string string_AmsNetID = "192.168.0.122.1.1";
/// /// 定义连接PLC的端口号 /// TwinCAT2,端口号801;TwinCAT3,端口号为851 /// //public static int iPort = 801; public static int iPort = 851;
/// /// PLC连接成功的标志 /// public static bool bConnectToBeckhoffOK = false;
public static ArrayList notificationHandles = new ArrayList(); #endregion
#region 函数定义 /// /// 连接到PLC /// public static void ConnectPLC() { try { //_adsClient.Connect(string_AmsNetID, iPort); _adsClient.Connect(iPort); bConnectToBeckhoffOK = true; } catch { bConnectToBeckhoffOK = false; } }
/// /// 读取double类型的变量,非实时刷新 /// /// /// public static double ReadDouble(string PlcVariableName) { double dResult = 0; try { int iHandleTemp = _adsClient.CreateVariableHandle(PlcVariableName); dResult = (double)(_adsClient.ReadAny(iHandleTemp, typeof(double))); _adsClient.DeleteVariableHandle(iHandleTemp); } catch { return 0; } return dResult; }
/// /// 根据PLC变量名,写PLC变量 /// /// /// public static void WriteVariable(string PlcVariableName, double dResult) { try { int iHandleTemp = _adsClient.CreateVariableHandle(PlcVariableName); _adsClient.WriteAny(iHandleTemp, dResult); _adsClient.DeleteVariableHandle(iHandleTemp); } catch { } }
/// /// 根据PLC变量名,写PLC变量 /// /// /// public static void WriteVariable(string PlcVariableName, bool bResult) { try { int iHandleTemp = _adsClient.CreateVariableHandle(PlcVariableName); _adsClient.WriteAny(iHandleTemp, bResult); _adsClient.DeleteVariableHandle(iHandleTemp); } catch { } }
#endregion
}}
倍福mySQL通讯_C#和倍福PLC之间的通讯控制相关推荐
- 西门子1200 plc与台达14ES plc之间modbus 通讯实战程序 西门子1200plc做主站,台达DVP plc做从站,进行数据交换
西门子1200 plc与台达14ES plc之间modbus 通讯实战程序 西门子1200plc做主站,台达DVP plc做从站,进行数据交换. 功能:通过MODBUS指令,通过西门子CM1241 4 ...
- 触摸屏与PLC之间无线通讯步骤详解
在工厂里,触摸屏往往位于程控室内,作为控制多个不同位置PLC的主站设备.因为触摸屏和plc所处位置距离较为分散,重新铺设电缆线工期长,成本高,故采用无线方式解决触摸屏与PLC之间的通讯问题. 接下来, ...
- 如何有效建立触摸屏与PLC之间无线通讯?
想要建立触摸屏与PLC之间无线通讯其实很简单,接下来,我们就来详细说说威纶通触摸屏与三菱FX3U PLC基于三菱专用协议下的无线通信实现方法. 首先你需要一台威纶通触摸屏作为主站,两台三菱FX3U P ...
- 三菱PLC与第三方设备TCP通讯_不用在PLC内编程,快速实现西门子与欧姆龙、三菱等品牌的PLC之间实时通讯...
项目中需要西门子S7-1513和欧姆龙的CJ2M之间通讯,为了快速实现完成项目,先采用一个智能网关模块来完成PLC之间的通讯任务.相关软件和手册下载 PLC与数据库双向通讯 西门子PLC从欧姆龙PLC ...
- 如何实现人机界面与多台plc之间无线通讯?
本文将以MCGS触摸屏与三菱FX5U PLC基于MODBUS协议下的无线通信为例,为大家详细讲解如何用无线方式解决触摸屏与PLC之间的通讯问题. 测试设备与参数 1. 三菱PLC型号:FX5U *1台 ...
- 不用编程,实现三菱FX5U与罗克韦尔(AB)PLC之间实时通讯
IGT-DSER智能网关模块支持西门子.三菱.欧姆龙.AB等各种品牌的PLC之间通讯,同时也支持PLC与Modbus协议的工业机器人.智能仪表等设备通讯.网关有多个网口.串口,也可选择WIFI,4G无 ...
- 不用在PLC内编程,实现西门子与罗克韦尔(AB)PLC之间数据通讯
智能网关IGT-DSER支持多点对多点的设置之间通讯,支持以太网,串口设备混合数据交换:无需编程开发,只须配置数据的起始地址和数量即可,支持热插拔,断电重启后自恢复运行,在实际的工程项目中应用方便. ...
- 三菱fx2n做从站的modbus通讯_实例讲解三菱PLC编程及通讯设定方法
三菱FX系列PLC作为三菱基本的PLC,它们之间的通讯有几种常用的方式,分别如下:CC-LINK,N:N网络连接,并联连接.1.CC-LINK连接 CC-LINK连接图如下: 对应的PLC可为FX1N ...
- TwinCAT3 控制器PLC之间EAP通讯1-主机给多个从机发送
目录 1.硬件组成 2.主机给多个从机发送数据 2.1 创建结构体MastCommand 2.2 创建MastCommand结构体全局变量 2.3 IO扫描和publisher box添加 2.4 激 ...
最新文章
- Geoffrey Hinton 等6位图灵奖得主和100多位专家邀请您共话人工智能下一个十年
- 卧加加工斜孔怎么计算机械坐标,卧加B轴旋转后坐标怎么计算
- d3.js实现隐藏部分关系
- 使用Zookeeper实现leader选举
- Java学习笔记_字符串/静态static
- 轻松查看Internet Explorer缓存文件
- python数据结构与算法
- 吉利控股集团申请注册“富吉康”商标
- java实现jsp转pdf,使用Java生成Pdf文档-JSP教程,Java技巧及代码
- 常用的四个电路分析方法
- 如何开发一款棋牌游戏?棋牌游戏平台搭建
- 土地数据合集-土地出让数据2020版Globe30土地覆盖数据
- crontab、cron、at、atq、batch、ps命令练习题
- dht11 python mysql,通过python脚本将arduino传感器数据发送到mysql数据库时出现问题
- 微信推送封面尺寸_微信公众平台图片尺寸是多少 如何设置
- 【转载】完全版线段树 by notonlysuccess大牛
- Nginx配置Https秘钥
- verilog实现Lemmings(疯狂小旅鼠)游戏
- NER命名实体识别,基于数据是字典的形式怎么识别
- 爬虫训练场项目前端之 Bootstrap 信息提示框,按钮与按钮组,徽章,进度条