倍福TwinCAT3上位机与PLC通信测试(ADS通信) 包含C#和C++代码 本次测试需要环境: VS2013,TwinCAT3(本人版本TC31-Full-Setup.3.1.4018.16) 代码:C#代码,PLC程序代码,C++代码(官方提供)  测试部分:  测试包含:bool类型,int类型,long类型,real类型,lreal类型,string类型,数组,以及结构体 部分测试(这里没有结构体嵌套) PLC程序Main程序 基本类型部分 代码: PROGRAM MAIN VAR B…
上位机开发常用到串口通信来控制设备,串口通信的主要参数:COM口,波特率(9600),停止位(One),数据位(8),校验位(None),括号中的是常用值,具体意思我也不太懂,会用能实现功能就行哈哈: 开发工具:VS2012;   开发前需要添加以下服务引用: ....... using System.IO.Ports; 窗体搭建,因为没有串口设备供调试 ,所以我用虚拟串口即两个串口互相连接来实现通信,窗体分为上下两部分,对应两个串口区,上图为虚拟串口设置,下图为Winform样式:      …
写在前面: 就目前而言,在中国的工控市场上,西门子仍然占了很大的份额,因此对于上位机开发而言,经常会存在需要与西门子PLC进行通信的情况.然后对于西门子PLC来说,通信方式有很多,下面简单列举一下: (1)  S7通信:PLC作为服务器,上位机作为客户端 (2)  开放式TCP通信:PLC作为服务器,上位机作为客户端 (3)  开放式TCP通信:PLC作为客户端,上位机作为服务器 (4)   ModbusTCP通信:PLC作为服务器,上位机作为客户端 (5)   ModbusTCP通信:PLC作…
618来啦 亲们,腾讯课堂101机构打榜了,快来助力<新阁教育>,<免费赠送课程>! 1.手机QQ(微信请也来一遍)扫下方二维码↓,找到<新阁教育> 2.点击“支持”,记得获得免费课程,还有红包相送. 3.助力成功后可以邀请亲朋好友,共同学习. 感谢支持 据某份数据不完全统计,目前中国市场十大国际PLC品牌如下(避免争议,排名不分先后): 西门子.施耐德.欧姆龙.三菱.罗克韦尔.松下.ABB.倍福.艾默生.GE 再盘点一下中国市场十大国内PLC品牌: 和利时.台达.汇川…
项目中会经常用到上位机与PLC之间的串口通信,本文介绍一下C#如何编写上位机代码 与三菱FX3U进行通讯 1. 第一种方法是自己写代码实现,主要代码如下: //对PLC的Y7进行置1 byte[] Y007_ON = { 0x02, 0x37, 0x30, 0x37, 0x30, 0x35, 0x03, 0x30, 0x36 }; //选择串口参数 SerialPort sp = , Parity.Even, ); //打开串口 sp.Open(); //写入数据 sp.Write(Y007_O…
上次跟大家介绍了一下上位机与三菱Q系列PLC通信的案例,大家可以通过点击这篇文章:上位机开发之三菱Q系列PLC通信实践(←戳这里) 今天以三菱FX3U PLC为例,跟大家介绍一下,如何实现上位机与其之间进行以太网通信,FX3U PLC默认是不带以太网的,如果需要与其进行通信,需要增加一个以太网模块,型号是FX3u-ENET-ADP. 1.PLC软件安装及配置 三菱FX系列PLC的编程软件使用GXWorks2,大家可以自行下载安装,也可以通过关注喜科堂上位机官方公众号——dotNet工控上位机,关…
上位机程序控制PLC模拟量通道输出周期性正弦波信号,并采集所造成改变的模拟量输入信号,并绘制数据变化曲线. 界面如图: 最后测试效果如图: 代码: using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threadi…
引言 经常的时候我们要实现两个代码之间的通信,比如说两个不同不同人写的代码要对接,例如将python指令控制Arduino控件的开关,此处使用串口通信是非常方便的,下面笔者将结合自己踩过的坑来讲述下自己的学习经历. 首先是挑战杯审报的一个项目,即采用机器学习模型分类数据,结合Arduino的压力传感器模块,而机器学习大多采取python,数据无法做到实时传输,最后放弃了. 图1 压力传感器模型 然后是python需要通过Arduino的北斗模块获取位置数据,这个也需要做两个代码之间的通信. 当时…
本文将使用库技术来读写倍福PLC数据,使用的是基于以太网的ADS实现,不需要额外的组件,读取操作只要放到后台线程就不会卡死线程,本组件支持超级方便的高性能读写操作 github地址:https://github.com/dathlin/HslCommunication 如果喜欢可以star或是fork,还可以打赏支持,打赏请认准源代码项目. 联系作者及加群方式:http://www.hslcommunication.cn/Cooperation 在Visual Studio 中的NuGet管理器…
经常关注我们公众号或者公开课的学员(如果还没有关注的话,左上角点击一波关注)应该知道,我们会经常使用西门子PLC,其实对于其他品牌的PLC,我们都会讲到,包括三菱.欧姆龙.基恩士.松下及国产台达.信捷等,之所以使用西门子PLC为例,一方面是因为学员当中使用西门子PLC居多,而且西门子的市场占有率也比较高,再者,我觉得做上位机开发,其实对PLC品牌并不太注重,你掌握了西门子PLC的上位机开发,其他品牌也都大同小异,只不过会存在一些规则和存储区的区别而已.今天就以三菱Q系列PLC为例,跟大家介绍一下…
写在前面: 很多人在学习OPCUA的时候,有个非常苦恼的问题,就是没有OPCUA服务器的环境,这时候,有些人可能会想到通过类似于KepServer这样的软件来实现.那么,有没有一种方式,实现快速搭建OPCUA环境呢?答案是有的,今天继续给大家分享S7-PLCSIM Advanced,S7-PLCSIM Advanced是SIEMENS推出的一款高功能仿真器,它的显著特点是除了可以仿真一般的PLC逻辑控制程序外还可以仿真通信,功能是非常强大的,今天主要讲述如何基于S7-PLCSIM Advance…
PLC服务器监控系统的特点: 1·使用微软C#面向对象开发语言开发应用程序.2·使用了健壮性与性能良好的SUPER SOCKET服务器通信框架,实现自定义应用层通信协议,支持多台PC客户端访问服务器,实现管理层的电脑实时监控显示生产现场的所有PLC数据,不需要频繁行走车间,节约时间,提高工作效率.3·使用了性能良好的MODBUS-TCP服务器通信组件HslCommunication.dll,支持数量众多的客户端主动同时访问读写服务器数据.4·服务器端同时作为客户端采用西门子S7协议与西门子PLC…
以西门子PLC举例; 西门子PLC有几个型号:S7-200SMART,S7-1200,S7-300,S7-400,S7-1500,价格从低到高. 1个项目中要求的IO数量:600点的DI+DO,若干个AI+AO.PLC组成结构可以是这样: (1):4个S7-200SMART 1个CPU SR60+4个扩展模块EMDR32+1个EM AE08+1个EM AQ04.数字量IO点数=60+(4*32)=60+128=188,模拟量I0点数=12 (2):3个S7-1200 1个S7-1215C-AC/…
在前面一节,我们简单介绍了通过PLC+HMI实现完整控制松下伺服的上使能-运动,采集位置,速度等功能,这里我们会大量简化用到的贝福功能块(为了更加实用).首先依然是对单个轴的封装,我们之前的做法,例如伺服上使能,使用了MC_Power模块,这个模块的输入和输出引脚都是自己定义的变量,比如是否上电成功我们是靠AxisPowerReady的信号来判断的,如果有两个甚至多个伺服的时候,这样做就很不方便管理了,所有的同类型变量都应该用数组统一管理.   改变之后的上使能,就变成了调用一个模块(我们把Ax…
经常有学员问我,学习上位机要不要买PLC硬件? 我一般的回答是:富则自行购买,穷则搭建仿真. PLC硬件,对于学习上位机来说,是锦上添花的事,经济条件允许,有则更好,条件不允许,我们也可以通过搭建仿真环境的方式来学习,因此我专门准备了一个系列--穷学上位机系列. 01.写在前面 本文的主题是基于STEP7搭建西门子仿真环境,STEP7是西门子300系列.400系列的编程软件,早期学习PLC的小伙伴对这个一定不陌生,虽然现在可以在TIA环境下编写S7-300/400的程序,但是不可否认,仍然有很多…
前言 上一节我们已经基本上把超声波硬件的发射和接收模块全部做好了,接下来我们着手开发一个软硬结合的基于C#的平面定位软件! 目录 一.整体思路 二.效果提前展示 2-1.软件部分展示 2-2.硬件部分展示 三.基于C#的客户端软件说明 3-1.整体框架介绍: 3-2.部分技术细节介绍 3-2-1.串口操作 3-2-2.JiSuan函数说明及核心算法介绍 四.阶段小结 五.相关链接 一.整体思路 >_<" 如下图,利用我们上三节开发的超声波发射与接收设备构成一个:2固定接收头+1可移动…
1.当客户让你做个CS程序时,当你手上一穷二白,所有都要重复造轮,你是不是很烦. 2.但如果有一个通用的,快速开发框架,就可以把你从这些基础的工作解救出来,你专注做业务就好了. 3.本人其中一个项目的效果图 4.功能有很多,先列一些,后面想起来再加入,这个是我见过的最好用的快速开发平台,功能强大又不笨重,学习成本低,上手快,出活快,老板满意~~: 4.1.框架支持多种数据库sqlserver/ACCESS/oracle/sqlite4.2.自动升级功能4.3.支持插件式二次开发4.4.通用权限管…
一.前言 开始做了两年web.期间也整了一段时间winform.后来做了两年工控上位机,也就是做工控这两年发现机器跟面向对象真是如此贴切,也是我从处理数据和流程的思维转变为面向对象思维的开始.这对我后来学习mvc5.owin..net core以及其它各种框架的学习有非常大的帮助,我发现我能看懂源码,也能理解这些大牛为什么要这么去设计这些类,这些类是如何协同工作去实现一个复杂的可扩展的框架,因为这些框架.设计模式最最根本还是以面向对象的思维来处理具体场景的具体问题.这一瞬间有一百万种可能,转变思…
步骤1 将PLC程序编写完成,CPU为314-2DP 符号表中的符号可以被所有逻辑块调用 步骤2 组态PLC300与西门子触摸屏170系列 TP177B CLOLOR PN/DP的MPI通信. 步骤3 编程WINCC FLEXIABLE 2008 SP4 上位机HMI 界面有点像VB6.0 步骤4 仿真 PLCSIM 与WINCC FLEXIABLE 联合仿真 已经录制成视频 包括PLC程序的编写 与HMI的编写 上传到百度网盘.…
新阁教育喜科堂不得不说,工业圈是个比较奇怪的圈子,各种各样的项目需求都有,有的人就希望价格低,功能实现即可,有的人又不在乎价格,就要界面好看.最近有一个小伙伴又提出了这样的需求,用最简单的方式,最低的成本,最少的代码,实现本地的PLC数据上云.我想了一下,如果想实现这种需求,我们就要站在巨人的肩膀上,用现成的轮子,将它们进行组装,变成自己的东西.那么这次,我们就采用S7.NET+Log4Net+SQLSugar+MySQL来实现一个西门子PLC数据上云的案例. 1.框架实现 关于这4个组件,有一…
实现上位机和下位机之间的通信,通常使用的是串口通信,接下来实现一个通过上位机和串口调试助手来完成串口通信测试. 首先创建一个WInfrom窗体应用工程文件,创建过程可参考https://www.cnblogs.com/xionglaichuangyichuang/p/13734179.html: 在创建好的工程下面,通过工具箱中已有的控件完成界面的搭建,如下图所示,为了方便初学者容易看懂程序,下图将控件的命名一并标注出来: 直接进入正题,将完整的工程代码黏贴出来: 1 using System;…
应用说明: 本上位机程序是我在做锂电池产线项目的时候开发的,用于采集设备数据以及实现设备自动控制,下位机采用基恩士PLC,超声波机采用上海一家的超声波焊接机,实现电芯极耳的自动焊接,上位在设备焊接过程中记录焊接数据,同时监控设备异常. 主要功能有:@1.设备监控:@2.PLC TCP/IP通讯:@3超声波焊接机通讯;@4扫码枪通讯:@5.用户登录方可有操作权限:@6数据采集:@7PLC控制:@8数据持久化等 1.其主界面见下图: 2.参数设置界面如下: 3.IO界面见下图: 4.手动操作界面如下…
1.新建工程 新建TwinCAT XAE Project 2.连接设备 点击SYSTEM,再点击"Change Target..." 在弹出的"choose Targt System"界面,点击"Search(Ethernet)". 点击"Boradcast Search". 选择连接plc的网口. 当出现扫描到的plc为cx开头,点击"Add Route". 在弹出的"Add Remote Ro…
拿到任务之后首先分成了几个部分: 1.绘图.学习了GDI+ 2.图片保存. 3.将图片转换成byte[].由于使用Socket通信,只能传输byte[]数据,所以这一步是向下位机传输的关键. 相应地,编程实现了下面几个功能: 1.使用GDI+画图并保存为bmp格式的图片.画图部分是书上的例子,只增加了保存的相应代码. public partial class Form1 : Form { Bitmap bitmap; Font myFont = , FontStyle.Bold);//定义字符串…
背景: 在编写QT上位机界面时,界面在运行的时候经常出现卡死或者直接挂掉的怪现象. 正文: 上位机有个函数为check_receive():该函数的作用为定时调用循环检测USB是否有数据.若有,则将信息打印到界面窗体上.界面上有两个QTableWidget窗体 "ui->can1tableWidget与ui->can2tableWidget",根据传上来的的数据某个字节信息为1.或2来打印到对应的窗体上.代码如下: QTableWidget *canselWidget =…
最近要跟着导师一起开发一款大型上位机.MFC新人在考虑用对话框结构还是文档结构. 虽然说书上说大型结构的软件都需要文档结构,但是目前来看,对话框可以实现功能,并且对话框的程序更小一些,节省资源加载速度也更快. 暂时先考虑对话框结构.后续编程完成后再补充. TBC...…
C++ MFC实现基于RFID读写器的上位机软件 该博客涉及的完整工程托管在https://github.com/Wsine/UpperMonitor,觉得好请给个Star (/▽\=) 运行和测试环境 Windows 10 Visual Studio 2013 msado15.dll(工程自带) ZM124U.dll(工程自带) RFID读写器ZM124U 理论支持全部Win32运行环境 参考内容 https://github.com/Wsine/UpperMonitor/blob/maste…
最近一直在学习UWP,其中有的技术参考了WPF,所以又回头再来学习WPF,感觉学的东西很杂,必须记录一下,不然时间长了还得忘掉,于是申请开始写博客,将学习的心得记录一下,以备后用.这次是因为公司内训,刚好想着推广一下开源硬件,所以选择了Arduino,而又结合WPF的强大功能,设计了串口上位机. 1.Arduino UNO作为下位机 利用Arduino作为下位机,理由很简单,语法很简单,上手很快. 1.电路连接 下图为电路原理图,主要利用模拟口A0读取光敏电阻和普通电阻的分压值,然后通过设定逻辑…
用C#编写上位机,基本流程是[1]串口配置,[2]串口发送数据,[3]串口接收数据. [1]串口配置 串口的属性配置包括: No.1串口端口号 No.2串口波特率 No.3串口数据位 No.4串口停止位 N0.5串口校验位 串口的上述属性,分别将值存储进combobox里边,然后带用户根据实际情况自己进行选择,设置也比较简单. 串口的打开和关闭,采用try-catch这对组合,可以自动打开和关闭处理过程中出现的问题. [2]串口发送数据 串口发送数据,采用串口的write属性,该属性有三种重载方…
源:NMEA协议 上位机 c# 前些时间写做了两款用NMEA协议的上位机,在这里做一个总结和记录.和大家分享,也为了以后不会忘记. NMEA协议总体来说,相对简单,是气象上比较成熟的协议. 主要有以下几个参数及其格式: 风速和风向: 空气温度: 土壤温度: 湿度: 大气压: 注: 其中效验部分主要采用的 异或效验:即从$后第一个字符到’*’前一个字符进行异或.所得到的数据高4位,低4位的ASCII码. <CR>: ‘\r’ <LF>: ‘\n’ 波特率:4800 刷新频率:1Hz…