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之间的通讯控制相关推荐

  1. 西门子1200 plc与台达14ES plc之间modbus 通讯实战程序 西门子1200plc做主站,台达DVP plc做从站,进行数据交换

    西门子1200 plc与台达14ES plc之间modbus 通讯实战程序 西门子1200plc做主站,台达DVP plc做从站,进行数据交换. 功能:通过MODBUS指令,通过西门子CM1241 4 ...

  2. 触摸屏与PLC之间无线通讯步骤详解

    在工厂里,触摸屏往往位于程控室内,作为控制多个不同位置PLC的主站设备.因为触摸屏和plc所处位置距离较为分散,重新铺设电缆线工期长,成本高,故采用无线方式解决触摸屏与PLC之间的通讯问题. 接下来, ...

  3. 如何有效建立触摸屏与PLC之间无线通讯?

    想要建立触摸屏与PLC之间无线通讯其实很简单,接下来,我们就来详细说说威纶通触摸屏与三菱FX3U PLC基于三菱专用协议下的无线通信实现方法. 首先你需要一台威纶通触摸屏作为主站,两台三菱FX3U P ...

  4. 三菱PLC与第三方设备TCP通讯_不用在PLC内编程,快速实现西门子与欧姆龙、三菱等品牌的PLC之间实时通讯...

    项目中需要西门子S7-1513和欧姆龙的CJ2M之间通讯,为了快速实现完成项目,先采用一个智能网关模块来完成PLC之间的通讯任务.相关软件和手册下载 PLC与数据库双向通讯 西门子PLC从欧姆龙PLC ...

  5. 如何实现人机界面与多台plc之间无线通讯?

    本文将以MCGS触摸屏与三菱FX5U PLC基于MODBUS协议下的无线通信为例,为大家详细讲解如何用无线方式解决触摸屏与PLC之间的通讯问题. 测试设备与参数 1. 三菱PLC型号:FX5U *1台 ...

  6. 不用编程,实现三菱FX5U与罗克韦尔(AB)PLC之间实时通讯

    IGT-DSER智能网关模块支持西门子.三菱.欧姆龙.AB等各种品牌的PLC之间通讯,同时也支持PLC与Modbus协议的工业机器人.智能仪表等设备通讯.网关有多个网口.串口,也可选择WIFI,4G无 ...

  7. 不用在PLC内编程,实现西门子与罗克韦尔(AB)PLC之间数据通讯

    智能网关IGT-DSER支持多点对多点的设置之间通讯,支持以太网,串口设备混合数据交换:无需编程开发,只须配置数据的起始地址和数量即可,支持热插拔,断电重启后自恢复运行,在实际的工程项目中应用方便. ...

  8. 三菱fx2n做从站的modbus通讯_实例讲解三菱PLC编程及通讯设定方法

    三菱FX系列PLC作为三菱基本的PLC,它们之间的通讯有几种常用的方式,分别如下:CC-LINK,N:N网络连接,并联连接.1.CC-LINK连接 CC-LINK连接图如下: 对应的PLC可为FX1N ...

  9. TwinCAT3 控制器PLC之间EAP通讯1-主机给多个从机发送

    目录 1.硬件组成 2.主机给多个从机发送数据 2.1 创建结构体MastCommand 2.2 创建MastCommand结构体全局变量 2.3 IO扫描和publisher box添加 2.4 激 ...

最新文章

  1. Geoffrey Hinton 等6位图灵奖得主和100多位专家邀请您共话人工智能下一个十年
  2. 卧加加工斜孔怎么计算机械坐标,卧加B轴旋转后坐标怎么计算
  3. d3.js实现隐藏部分关系
  4. 使用Zookeeper实现leader选举
  5. Java学习笔记_字符串/静态static
  6. 轻松查看Internet Explorer缓存文件
  7. python数据结构与算法
  8. 吉利控股集团申请注册“富吉康”商标
  9. java实现jsp转pdf,使用Java生成Pdf文档-JSP教程,Java技巧及代码
  10. 常用的四个电路分析方法
  11. 如何开发一款棋牌游戏?棋牌游戏平台搭建
  12. 土地数据合集-土地出让数据2020版Globe30土地覆盖数据
  13. crontab、cron、at、atq、batch、ps命令练习题
  14. dht11 python mysql,通过python脚本将arduino传感器数据发送到mysql数据库时出现问题
  15. 微信推送封面尺寸_微信公众平台图片尺寸是多少 如何设置
  16. 【转载】完全版线段树 by notonlysuccess大牛
  17. Nginx配置Https秘钥
  18. verilog实现Lemmings(疯狂小旅鼠)游戏
  19. NER命名实体识别,基于数据是字典的形式怎么识别
  20. 爬虫训练场项目前端之 Bootstrap 信息提示框,按钮与按钮组,徽章,进度条

热门文章

  1. Rust实现:从一组纸牌中挑选Winner纸牌
  2. 物联网应用平台开发——项目总结报告
  3. flutter 收起软键盘
  4. 【企业微信】JS-SDK引入实现向企微群聊发送图文消息
  5. Linux系统调用详解(实现机制分析)--linux内核剖析(六)
  6. Python编程PTA题解——验证“哥德巴赫猜想”
  7. snmp v3 参数_snmp v3配置使用
  8. 视频教程-软件测试入门视频教程-软件测试
  9. 快速将多个Excel表格合并为1个,你会吗?
  10. 你的PC机或者终端,是怎么上网的?怎么连接到网络的?无线网怎么接入Internet,如何访问网络资源?