首页 >>  正文

上位机串口编程

来源:baiyundou.net   日期:2024-09-23

1 PLC的发展历程

在工业生产过程中,大量的开关量顺序控制,它按照逻辑条件进行顺序动作,并按照逻辑关系进行连锁保护动作的控制,及大量离散量的数据采集。传统上,这些功能是通过气动或电气控制系统来实现的。1968年美国GM(通用汽车)公司提出取代继电气控制装置的要求,第二年,美国数字公司研制出了基于集成电路和电子技术的控制装置,首次采用程序化的手段应用于电气控制,这就是第一代可编程序控制器,称Programmable Controller(PC)。

个人计算机(简称PC)发展起来后,为了方便,也为了反映可编程控制器的功能特点,可编程序控制器定名为Programmable Logic Controller(PLC)。

上世纪80年代至90年代中期,是PLC发展最快的时期,年增长率一直保持为30~40%。在这时期,PLC在处理模拟量能力、数字运算能力、人机接口能力和网络能力得到大幅度提高,PLC逐渐进入过程控制领域,在某些应用上取代了在过程控制领域处于统治地位的DCS系统。

PLC具有通用性强、使用方便、适应面广、可靠性高、抗干扰能力强、编程简单等特点。PLC在工业自动化控制特别是顺序控制中的地位,在可预见的将来,是无法取代的。

2 PLC的构成

从结构上分,PLC分为固定式和组合式(模块式)两种。固定式PLC包括CPU板、I/O板、显示面板、内存块、电源等,这些元素组合成一个不可拆卸的整体。模块式PLC包括CPU模块、I/O模块、内存、电源模块、底板或机架,这些模块可以按照一定规则组合配置。

3 CPU的构成

CPU是PLC的核心,起神经中枢的作用,每套PLC至少有一个CPU,它按PLC的系统程序赋予的功能接收并存贮用户程序和数据,用扫描的方式采集由现场输入装置送来的状态或数据,并存入规定的寄存器中,同时,诊断电源和PLC内部电路的工作状态和编程过程中的语法错误等。进入运行后,从用户程序存贮器中逐条读取指令,经分析后再按指令规定的任务产生相应的控制信号,去指挥有关的控制电路。

CPU主要由运算器、控制器、寄存器及实现它们之间联系的数据、控制及状态总线构成,CPU单元还包括外围芯片、总线接口及有关电路。内存主要用于存储程序及数据,是PLC不可缺少的组成单元。

在使用者看来,不必要详细分析CPU的内部电路,但对各部分的工作机制还是应有足够的理解。CPU的控制器控制CPU工作,由它读取指令、解释指令及执行指令。但工作节奏由震荡信号控制。运算器用于进行数字或逻辑运算,在控制器指挥下工作。寄存器参与运算,并存储运算的中间结果,它也是在控制器指挥下工作。

CPU速度和内存容量是PLC的重要参数,它们决定着PLC的工作速度,IO数量及软件容量等,因此限制着控制规模。

4 I/O模块

PLC与电气回路的接口,是通过输入输出部分(I/O)完成的。I/O模块集成了PLC的I/O电路,其输入暂存器反映输入信号状态,输出点反映输出锁存器状态。输入模块将电信号变换成数字信号进入PLC系统,输出模块相反。I/O分为开关量输入(DI),开关量输出(DO),模拟量输入(AI),模拟量输出(AO)等模块。

常用的I/O分类如下:

开关量:按电压水平分,有220VAC、110VAC、24VDC,按隔离方式分,有继电器隔离和晶体管隔离。

模拟量:按信号类型分,有电流型(4-20mA,0-20mA)、电压型(0-10V,0-5V,-10-10V)等,按精度分,有12bit,14bit,16bit等。

除了上述通用IO外,还有特殊IO模块,如热电阻、热电偶、脉冲等模块。

按I/O点数确定模块规格及数量,I/O模块可多可少,但其最大数受CPU所能管理的基本配置的能力,即受最大的底板或机架槽数限制。

5 电源模块

PLC电源用于为PLC各模块的集成电路提供工作电源。同时,有的还为输入电路提供24V的工作电源。电源输入类型有:交流电源(220VAC或110VAC),直流电源(常用的为24VDC)。

6 底板或机架

大多数模块式PLC使用底板或机架,其作用是:电气上,实现各模块间的联系,使CPU能访问底板上的所有模块,机械上,实现各模块间的连接,使各模块构成一个整体。

7 PLC系统的其它设备

7.1 编程设备:编程器是PLC开发应用、监测运行、检查维护不可缺少的器件,用于编程、对系统作一些设定、监控PLC及PLC所控制的系统的工作状况,但它不直接参与现场控制运行。小编程器PLC一般有手持型编程器,目前一般由计算机(运行编程软件)充当编程器。也就是我们系统的上位机。

7.2 人机界面:最简单的人机界面是指示灯和按钮,目前液晶屏(或触摸屏)式的一体式操作员终端应用越来越广泛,由计算机(运行组态软件)充当人机界面非常普及。

8 PLC的通信联网

依靠先进的工业网络技术可以迅速有效地收集、传送生产和管理数据。因此,网络在自动化系统集成工程中的重要性越来越显著,甚至有人提出”网络就是控制器”的观点说法。

PLC具有通信联网的功能,它使PLC与PLC 之间、PLC与上位计算机以及其他智能设备之间能够交换信息,形成一个统一的整体,实现分散集中控制。多数PLC具有RS-232接口,还有一些内置有支持各自通信协议的接口。PLC的通信现在主要采用通过多点接口(MPI)的数据通讯、PROFIBUS 或工业以太网进行联网。

  • 以下以支持西门子S7-200 TCP协议的PLC为例,讲解如何将PLC接入有人云,并演示如何接线与配置。通讯设备选择有人的USR-PLCNET 500

一、准备材料

PLC(西门子S7-200 TCP协议)USR-PLCNET 500

二、连接

设备连接

1.根据plc接口采用网线或者串口方式与plcnet 500连接,plcnet 500供网方式有有线和无线两种方式

2.给plcnet 500供电(12v~36v)

注册登录

登录 http://mp.usr.cn/ 用手机号注册有人通行证,或者用之前透传云的账号登录云组态。

三、添加设备

1.基本信息

填写SN、IMEI等基本信息,SN不支持的会在页面中红色字提示,点击“SN不支持,点这里”添加,早期通过透传云添加的设备须通过“SN不支持,点这里”继续添加。

  • SN:设备的SN码,一般在设备背面的贴膜上,可用有人云小程序直接扫描添加。
  • SN不支持,点这里:早期通过透传云添加的设备须通过“SN不支持,点这里”继续添加。
  • 添加方式:PLCNET500支持SN添加,这里输入SN与MAC进行添加(SN和MAC在设备后贴膜上)
  • 云组态:开启云组态功能,可以实现对自动化过程和装备的监控。可以通过关联产品(设备模板),快速实现,也可以使用数据透传,结合二次开发来实现。

2.选择产品

产品库汇集了已经支持的各类合作厂家优秀的产品。用户通过“新建模板”或选择“已有模板”选择产品模板,无需做配置等操作,点击“确认添加”完成添加设备。现已选择“ModBus RTU”协议,选择“云端轮询”为例(目前仅有4G DTU USR-G780 V2 支持“边缘计算” )详见关于Modbus相关知识

3.设备上云

SN方式添加的设备

4.配置从机和变量

  • 从机名称:自定义设置,这里填PLC控制器
  • 从机IP:网口PLC的IP地址
  • 从机端口:网口PLC的端口

    点击->”添加变量”

  • 变量名称:自定义名称,如温度、湿度

  • 寄存器:选择相适应的寄存器类型与数据长度,这里添加开关:I0.0 温度:VW0 压力:VW2
  • 数据格式:根据数值范围的大小以及数值类型选择格式
  • 采集频率:选择采集频率或者选择主动上报
  • 存储方式:数据有变化时存储选择变化存储

四、查看数据

可见云端设备在线

","gnid":"9948aebc8a06e78cb","img_data":[{"flag":2,"img":[{"desc":"","height":"499","title":"","url":"https://p0.ssl.img.360kuai.com/t0129d5dc8ed6ce0ded.png","width":"701"},{"desc":"","height":"393","title":"","url":"https://p0.ssl.img.360kuai.com/t01a7bd73512d79dcd5.png","width":"627"},{"desc":"","height":"668","title":"","url":"https://p0.ssl.img.360kuai.com/t019766a448a313cca7.png","width":"1170"},{"desc":"","height":"686","title":"","url":"https://p0.ssl.img.360kuai.com/t01854a02017c284faa.png","width":"1904"},{"desc":"","height":"821","title":"","url":"https://p0.ssl.img.360kuai.com/t0190084b892c76360c.jpg","width":"1862"},{"desc":"","height":"654","title":"","url":"https://p0.ssl.img.360kuai.com/t01f295be6ddf541868.png","width":"1017"},{"desc":"","height":"819","title":"","url":"https://p0.ssl.img.360kuai.com/t01f70193890bfcc1a0.jpg","width":"1899"},{"desc":"","height":"919","title":"","url":"https://p0.ssl.img.360kuai.com/t01179bb20c5a5e30f1.png","width":"1887"},{"desc":"","height":"922","title":"","url":"https://p0.ssl.img.360kuai.com/t01db1d695b3f36e115.png","width":"1889"}]}],"original":0,"pat":"art_src_0,fts0,sts0","powerby":"hbase","pub_time":1684387601000,"pure":"","rawurl":"http://zm.news.so.com/eb9152e1513a8f365b301e9a0899e395","redirect":0,"rptid":"55e12fe4fdc9028a","rss_ext":[],"s":"t","src":"浩然正气","tag":[{"clk":"ktechnology_1:cpu","k":"cpu","u":""},{"clk":"ktechnology_1:sn","k":"sn","u":""}],"title":"PLC入门-快速入门

轩华寿1933我现在正在做物联网软件部分 急求一份上位机接受串口数据的代码 -
马蓉罚15086825672 ______ 用c#的,serialport类同步阻塞读写指定com口,异步非阻塞读写指定com口.下来是上位机的接口协议.

轩华寿1933C#如何实现上位机的编程,这里主要是通过网口实现pc机与单片机之间的通信...最好有实际的例子.谢了..
马蓉罚15086825672 ______ c#编写上位机,与单片机通讯,一般采用串口通讯:RS232,RS422,RS485. 通过VS .NET中的串口通讯控件即可实现. 如果下位机是类似基于LINUX内核的ARM,可以采用网口,也可以采用串口.

轩华寿1933现在比较容易上手的上位机软件编程语言是什么? -
马蓉罚15086825672 ______ 上位机这个概念是工业控制领域的吧...我对这个领域不熟悉,不过只是提醒一下楼主,楼上各位的回答不一定满足你的要求. C++虽然在普通PC上的软件设计用的很多,但是在工控领域不见得用的也多...C#主要用在网络环境的编程上面,特别是服务器端用的比较多...Java也主要是在服务器端用的比较多

轩华寿1933求单片机串口通信协议,做设计要求:上位机通过串口实现点亮和灭3盏LED灯,不太懂协议,最好有示例代码
马蓉罚15086825672 ______ #include<reg52.h> #define uchar unsigned char #define uint unsigned int uchar idata trdata[]={'R','I','C','H','M','C','U','R','Z','-','5','1','V','2','.','0',0x0d,0x0a,0x00}; sbit K1=P3^2; //对应开发板K1按键 /*-------------------------------------------------------------*/ ...

轩华寿1933上位机软件编程 -
马蓉罚15086825672 ______ 主要是 VC,Delphi 一般来说和单片机通信都是用的串口或者并口和上位机进行通信,C++或者delphi带的控件非常好用. 很多人用C++buider,说很好用,我没用过,你可以考虑一下 个人认为是vc,如果vc很熟悉可以学学Delphi 具体看什么书到书店找找吧,具体的说不好

轩华寿1933用什么语言编写上位机(将串口传送的数据显示为图像)?
马蓉罚15086825672 ______ 一般使用C/C++、VB等嵌入式语言.

轩华寿1933求一个 实现上位机上位机控制单片机串口发送和停止发送数据的程序. 要求串口收到串口助手发送来的0xAA 后 -
马蓉罚15086825672 ______ 你在串口中断中应该进行一次判断是发送还是接受不然可能会产生错误 建议格式为 void Com_Service(void) interrupt 4 { if(RI) { RI=0; a=SBUF; if(a==0xAA) { flag=1; } if(a==0xFF) { flag=0; } if(TI) { TI=0; } }//你想在接受到)ff后停止接受,不能关闭...

轩华寿1933C语言读取PLC数据 -
马蓉罚15086825672 ______ 串口编程的学习应该从以下几个方面入手:1.就是上位机的编程,使用c语言或者vc,vb等语言进行上位机的编程实现,主要就是操作串口,理解通信波特率,奇偶校验位,停止位的概念.如果使用单片机或者c语言开发的话,就会有一定麻烦,如...

轩华寿1933如何使用vs2013编写上位机串口程序 -
马蓉罚15086825672 ______ 添加串口控件.在串口控件中有相应的事件.

轩华寿1933你好,请问:上位机根据一些智能设备的通讯协议,怎么去控制这些走串口通讯的设备呢,网上说用VC++6.0 -
马蓉罚15086825672 ______ 知道通讯协议的话,只要通过串口给设备发命令就行了. 可以用VC编程写个软件来控制,其实最基本的来说就是从串口发命令,最简单的操作就是下载个串口调试助手之类的软件,或者通过计算机自带的“开始/所有程序/附件/通讯/超级终端”,把电脑和设备的串口连接起来,直接往串口发送命令就行了. 如果还不明白,可以在Hi聊.

(编辑:自媒体)
关于我们 | 客户服务 | 服务条款 | 联系我们 | 免责声明 | 网站地图 @ 白云都 2024