modbus协议下上位机编程实例
- 格式:docx
- 大小:28.04 KB
- 文档页数:7
上位机发送数据
备注:
增加一个功能码0x04(总电能)
下位机回复(总电能的数据):
第一个字节是从机地址
第二个字节是命令号地址 04
第三个字节是返回的数据有多少字节 08(8个字节)第4到第7个字节表示KWH
第8到第11个字节表示MWH
最后俩个字节是校验位
下面举例说明:
想要查询地址为01的硬件所测量的B相各个参数
于是发送数据:01 02 81 E1
1.首先配置软件,串口号选择正确可用的,将16进制发送和显示勾上。
2.点击打开,如果串口号选择正确,就会如下图所示,成功打开了串口。
3.发送第一个数据01,点击发送
4.收到回复值01,说明01成功发送。
如果没有返回值,说明01没有成功发送,要重新点击发送,直到送回01
5.清空发送区,发送第二个数据02
6.收到返回值02,没有返回值同样需要再次发送
7、发送第三个数据81,81为CRC校验码低位
8.发送E1(英文的大小写都行),收到返回值E1,这样说明我们发送的数据下位机全部收到了,于是我们所要的数据也返回来了。
9.我们要的数据,第一个01代表硬件地址。
10.第二个数据02代表B相
11.第三个24是16进制,转化为10进制为36
12.最开始的4个字节是电流有效值
12.接下来的4个字节是电压有效值,剩下数据的根据最上面的表格可知。
13.最后是CRC校验码。
很好的威纶通MODBUSRTU通讯协议与变频器通讯案例威纶通(Veintron)是一家专注于工业自动化领域的企业,他们开发了一种基于MODBUS RTU通讯协议的变频器产品,用于实现变频器与其他设备之间的数据交互。
以下是一个关于威纶通MODBUS RTU通讯协议与变频器通讯的案例。
在工厂的生产线上,使用了一台威纶通的变频器控制其中一种设备的转速。
工作人员希望通过上位机监控和控制变频器,以提高整个生产线的效率和稳定性。
首先,需要配置上位机与变频器之间的通讯连接。
上位机采用RS-485接口与变频器进行通讯。
通过串口配置软件,设置上位机的通讯参数,例如波特率、校验位等。
在变频器侧,需设置相应的通讯参数,以确保与上位机的通讯一致。
威纶通的变频器支持MODBUSRTU通讯协议,因此在通讯过程中需要按照该协议的规范进行数据交互。
MODBUSRTU是一种基于串行通讯的协议,使用二进制数据格式进行传输。
在上位机端,可以使用编程语言(如C、C++、Python)或者现有的SCADA软件(如Intouch、LabVIEW)进行开发。
这里以C语言为例,使用串口编程库进行通讯处理。
首先,在上位机端打开串口,并设置串口的通讯参数。
然后,通过MODBUSRTU协议定义相关的指令和数据格式,以实现与变频器之间的数据交互。
例如,使用MODBUSRTU读取变频器的转速,可以发送如下的读取指令:010*********C40B其中,01表示设备地址(每个变频器都有一个唯一的地址),03表示读取寄存器的功能码,0000表示要读取的寄存器地址,0002表示要读取的寄存器数量。
C40B是CRC校验码,用于校验数据的正确性。
当变频器接收到读取指令后,会按照指令中的地址和数量读取相应的寄存器数据,并通过串口返回给上位机。
上位机接收到数据后,可以解析出变频器的转速并进行相应的处理。
类似地,上位机也可以通过MODBUSRTU协议向变频器发送写入指令,以实现对变频器的控制。
上位机、下位机通信实例摘要:I.引言A.介绍上位机和下位机的概念B.阐述上下位机通信的重要性II.上位机和下位机的定义及功能A.上位机的定义和功能1.控制和监控系统2.数据处理和分析3.通信管理和故障诊断B.下位机的定义和功能1.实时数据采集和处理2.控制设备运行3.响应上位机的指令和请求III.上下位机通信实例A.通信方式1.串口通信2.以太网通信3.无线通信B.通信协议1.Modbus 协议2.Profinet 协议3.Can 总线协议C.通信应用实例1.工业自动化领域2.智能家居领域3.医疗设备领域IV.上下位机通信中遇到的问题及解决方案A.通信不稳定1.检查通信线路2.调整通信参数3.使用信号放大器B.数据传输延迟1.优化通信协议2.提高处理器速度3.使用更高速的通信方式C.安全问题1.使用加密算法2.建立访问控制机制3.定期更新安全补丁V.结论A.总结上下位机通信的重要性B.展望上下位机通信的未来发展趋势正文:在现代工业和科技领域中,上位机和下位机的通信变得越来越重要。
上位机主要负责控制、监控、数据处理、通信管理和故障诊断等任务,而下位机则负责实时数据采集、控制设备运行以及响应上位机的指令和请求。
二者之间的通信不仅要求高效、稳定,还要保证数据的安全性。
本文将介绍上位机和下位机的定义及功能,并通过实例分析不同的通信方式、通信协议以及可能遇到的问题和解决方案。
上位机主要负责对整个系统进行控制和监控,对采集到的数据进行处理和分析,以及对通信进行管理和故障诊断。
而下位机则是实时数据采集和处理的中心,它可以控制设备的运行,响应上位机的指令和请求,从而实现数据的传输和系统的控制。
在实际应用中,上下位机之间的通信方式有串口通信、以太网通信和无线通信等。
串口通信虽然传输速度较慢,但成本低、抗干扰能力强;以太网通信速度快、传输距离远,但成本相对较高;无线通信则适用于各种环境,但可能受到信号干扰和传输距离限制。
摘要随着微电子技术和计算机术的进步,可编程控制器以其可靠性高、抗干扰强、开发周期短,已经成为一种较为普及的、适应多种应用环境的工业控制器。
现已从最初的简单顺序控制、逻辑控制发展到可进行模拟量控制、位置控制,特别是PLC与PLC、PLC与计算机通信功能的实现,可组成多级控制系统,形成工厂自动化网络。
PLC可以多种方式如直接采用现有的组态监控软件与上位监控机通信,但针对小规模的控制系统,找到一种高性价比的通信方法,具有积极的实际意义。
本文就是讨论如何利用Modbus通信协议来实现施耐德电器公司的NanoPLC与上位监控PC机的通信。
关键词 modbus;plc;自动化网络;pc1硬件描述及串口设置1.1 接口电路设计PLC与PC间实现通信,可使二者互补功能上的不足,PLC用于控制方面既方便又可靠,而PC机在图形显示、数据处理、打印报表以及中文显示等方面有很强的功能。
因此,各PLC制造厂家纷纷开发了适用于本公司的各种型号PLC机通信的接口模块,不同的通信方式,有着不同的成本价格和不同的适用范围。
NanoPLC的CPU单元本身带有1个RS-485扩展口,可不配备专用通讯模块,而通过此接口与上位机进行串行通信。
在此介绍一种通过PLC的RS485扩展口与PC机的RS-232串行口进行通信的方法。
由于NanoPLC的扩展口采用RS-485标准,RS485是RS422的变型。
RS422为全双工,可同时发送与接收;RS485则为半双工,在某一时刻,1个发送另1个接收。
RS485是一种多发送器的电路标准,允许双导线上1个发送器驱动32个负载设备,负载设备可以是被动发送器、接收器或收发器。
而计算机的串行口采用RS-232标准。
因此,作为实现PLC与计算机通信的接口电路,必须将RS-485标准转换成RS-232标准。
我们利用SC-485转换器实现RS485与RS232之间的转换。
转换电路如图1所示。
图1 RS485与RS232转换电路图1.2 PLC串行口设置施耐德的NanoPLC对通信参数的设置通过设置扩展口来实现,系统采用PC 机作为Modbus通信网络主站,NanoPLC作为从站。
上位机与下位机之间的通信编程在现代工业自动化系统中,上位机和下位机之间的通信起着至关重要的作用。
上位机是指控制整个系统的计算机,而下位机则是指负责执行具体任务的设备或机器。
通过上位机与下位机之间的通信,上位机可以向下位机发送指令,控制其工作状态,并实时获取下位机的数据反馈。
本文将探讨以上位机与下位机之间的通信编程技术。
1. 通信协议在上位机与下位机之间进行通信时,需要定义一种通信协议,以确保双方能够正确地交换数据。
常用的通信协议包括Modbus、Profibus、CAN等。
这些协议定义了数据的格式、传输方式以及错误处理机制,使得上位机和下位机能够按照统一的规范进行通信。
2. 通信接口上位机与下位机之间的通信可以通过串口、以太网、无线网络等多种方式实现。
在编程时,需要选择合适的通信接口,并根据接口特点进行相应的编程配置。
例如,在使用串口进行通信时,需要配置串口的波特率、数据位、停止位等参数;在使用以太网进行通信时,需要配置IP地址、端口号等参数。
3. 数据交换在通信过程中,上位机和下位机需要交换各种类型的数据,如控制指令、传感器数据、报警信息等。
为了确保数据的准确性和可靠性,通常会使用特定的数据格式进行数据交换。
常见的数据格式包括二进制、ASCII码、JSON等。
在编程时,需要根据数据格式的要求进行数据的打包和解包操作。
4. 通信流程通信流程是指上位机与下位机之间通信的具体步骤和顺序。
在通信编程中,需要明确通信流程,确保上位机和下位机能够按照预定的顺序进行通信。
通常,通信流程包括建立连接、数据交换、关闭连接等步骤。
5. 异常处理在通信过程中,可能会出现各种异常情况,如通信超时、通信中断、数据错误等。
为了保证通信的稳定性和可靠性,需要在编程时对这些异常情况进行处理。
常见的异常处理方式包括重新连接、重发数据、错误提示等。
6. 安全性在工业自动化系统中,数据的安全性至关重要。
为了保护通信过程中的数据安全,需要在通信编程中加入相应的安全机制。
Modbus通信协议一、Modbus 协议简介Modbus 协议是应用于电子控制器上的一种通用语言。
通过此协议,控制器相互之间、控制器经由网络(例如以太网)和其它设备之间可以通信。
它已经成为一通用工业标准。
有了它,不同厂商生产的控制设备可以连成工业网络,进行集中监控。
此协议定义了一个控制器能认识使用的消息结构,而不管它们是经过何种网络进行通信的。
它描述了一控制器请求访问其它设备的过程,如果回应来自其它设备的请求,以及怎样侦测错误并记录。
它制定了消息域格局和内容的公共格式。
当在一Modbus网络上通信时,此协议决定了每个控制器须要知道它们的设备地址,识别按地址发来的消息,决定要产生何种行动。
如果需要回应,控制器将生成反馈信息并用Modbus协议发出。
在其它网络上,包含了Modbus协议的消息转换为在此网络上使用的帧或包结构。
这种转换也扩展了根据具体的网络解决节地址、路由路径及错误检测的方法。
1、在Modbus网络上转输标准的Modbus口是使用一RS-232C兼容串行接口,它定义了连接口的针脚、电缆、信号位、传输波特率、奇偶校验。
控制器能直接或经由Modem组网。
控制器通信使用主—从技术,即仅一设备(主设备)能初始化传输(查询)。
其它设备(从设备)根据主设备查询提供的数据作出相应反应。
典型的主设备:主机和可编程仪表。
典型的从设备:可编程控制器。
主设备可单独和从设备通信,也能以广播方式和所有从设备通信。
如果单独通信,从设备返回一消息作为回应,如果是以广播方式查询的,则不作任何回应。
Modbus协议建立了主设备查询的格式:设备(或广播)地址、功能代码、所有要发送的数据、一错误检测域。
从设备回应消息也由Modbus协议构成,包括确认要行动的域、任何要返回的数据、和一错误检测域。
如果在消息接收过程中发生一错误,或从设备不能执行其命令,从设备将建立一错误消息并把它作为回应发送出去。
2、在其它类型网络上转输在其它网络上,控制器使用对等技术通信,故任何控制都能初始和其它控制器的通信。
伺服电机modbus 485控制案例摘要:1.伺服电机简介2.Modbus协议介绍3.Modbus 485控制原理4.伺服电机Modbus 485控制案例分析5.总结与展望正文:伺服电机是一种可以精确控制转速和转矩的电机,广泛应用于工业自动化领域。
Modbus协议是一种通信协议,常用于工业控制和自动化系统中。
本文将介绍伺服电机Modbus 485控制案例。
首先,让我们了解一下伺服电机。
伺服电机是一种可以精确控制转速和转矩的电机,其特点是转速稳定、精度高。
它主要由转子、定子和控制器组成。
在工业自动化领域,伺服电机常用于定位、控制和执行任务。
其次,介绍一下Modbus协议。
Modbus协议是一种通信协议,常用于工业控制和自动化系统中。
它有多种传输方式,如串行通信、以太网通信等。
Modbus 485是一种串行通信方式,它具有传输距离远、抗干扰能力强等优点。
接着,我们来了解一下Modbus 485控制原理。
在Modbus 485系统中,主设备通过485总线发送命令和数据,从设备接收命令和数据。
主设备通过Modbus地址分配给从设备唯一的地址,实现数据通信。
在伺服电机控制中,主设备通常为上位机,从设备为伺服电机驱动器。
上位机通过Modbus 485总线发送控制命令,驱动器接收命令并控制伺服电机的转速和转矩。
最后,我们通过一个案例来分析伺服电机Modbus 485控制。
假设有一个上位机监控系统,需要通过Modbus 485控制一个伺服电机的转速和位置。
首先,上位机通过Modbus 485总线给伺服电机驱动器分配地址,并设置相关参数。
然后,上位机发送指令,如启动、停止、正转、反转等,驱动器接收指令并控制伺服电机的转速和转矩。
最后,上位机通过Modbus 485总线读取伺服电机的实时状态,如转速、位置等。
总之,伺服电机Modbus 485控制案例通过Modbus协议实现了上位机与伺服电机驱动器之间的通信,从而实现了对伺服电机的精确控制。
如何在Windows平台上面快速搭建一个Modbus主站上位机demo现如今,Modbus协议可以说是工业控制,现场数据采集邻域各种控制设备与传感器应用最为广泛的数据交互协议,不管是简单方便的串口,还是高速稳定的以太网,Modbus协议都有相应的适配其传输特点的协议。
虽然目前主流的Modbus 人机交互主站是组态王或者各种工控厂家生产的触摸屏,但如果你想做一些带逻辑控制,或者界面比较自由的上位机,那么该文章将在Visual Studio集成开发环境下,使用C#语言和Visual Studio的Winform框架,从环境安装,创建工程,Modbus库的安装,代码编写,程序调试等几个步骤,带你快速开发出一个Window 平台环境下的Modbus主站上位机demo。
(该文档以Visual Studio 2017为例)一、搭建开发环境在“工作负荷”菜单处勾选“.NET桌面开发”(已省略安装具体步骤)与你需要的其他组件。
安装完成后,我们进入下一步。
二、创建工程1、打开Visual Studio依次点击“文件”->“新建”->“项目”2、创建Visual C#的Windows窗体应用,按如下步骤创建Windows窗体应用,下面第四步我们可以自定义工程名称,这里我将该工程命名成“ModbusMaster”,完成后点击“确定。
三、Modbus库的安装工程创建完成后,中间红色部分窗体就是我们该工程默认生成的界面,默认程序运行起来后会加载该界面,但我们先不管界面,我们先为工程安装Easy ModbusTcp库。
EasyModbusTCP是基于.NET Framework和Java平台上的Modbus TCP/UDP/RTU通讯协议库。
它主要用于工业自动化领域,帮助用户实现远程控制和数据采集。
EasyModbusTCP的特点如下:简单易用:EasyModbusTCP提供了简单易用的API,使得用户可以轻松地实现与Modbus设备的通信。
易语言串口通讯modbus协议模块上位机必备例子源代码1.引言1.1 概述在编写易语言串口通讯modbus协议模块上位机必备例子源代码之前,我们首先需要了解一些基本概念和背景知识。
本文介绍了该例子的目的和结构,以及引言、正文和结论三个主要部分的内容。
1.1概述Modbus协议是一种常用的串行通信协议,广泛应用于工业自动化领域。
它被设计用于在不同设备之间进行数据传输和通信。
Modbus协议简洁明了,易于实现和部署,因此被许多工业设备和上位机所采用。
易语言是一种面向过程的编程语言,易于学习和使用。
它提供了丰富的库和模块,方便我们进行串口通讯编程。
易语言的特点是语法简单易懂,同时也支持调用其他语言编写的DLL函数,可以实现更加复杂的功能。
本例子的目标是演示如何使用易语言编写一个串口通讯的Modbus 协议模块,并结合上位机的必备功能来实现数据的读写和显示。
在正文部分,我们将介绍Modbus协议的简要概述,包括其通信方式、数据格式、功能码等。
同时,我们还将介绍易语言中的串口通讯模块及其基本用法。
在结论部分,我们将提供一些实例源代码示例,以便读者更好地理解和使用这个例子。
此外,我们还将列举一些上位机必备的功能,以供读者参考和扩展应用。
通过这个例子,读者可以学习到如何使用易语言进行串口通讯编程,并了解Modbus协议在实际应用中的运用。
同时,读者也可以根据自己的需求和实际情况,对例子进行二次开发和改进,以适应不同的应用场景。
在下一节中,我们将详细介绍Modbus协议的相关知识,以便读者更好地理解本例子的内容和实现。
文章结构部分主要是对整篇文章的组织和安排进行介绍,以下是1.2 文章结构的内容:1.2 文章结构本文主要分为三个部分,包括引言、正文和结论,具体如下:1. 引言部分介绍了本文的概述、文章结构和目的。
在概述中,我们对易语言串口通讯modbus协议模块上位机必备例子源代码进行了简要介绍,指出了本文的主要内容和目标。
#include <bur/plc.h>#include <bur/plctypes.h>#include <drv_mbus.h>#include <string.h>#define _AR_I386_AUTOMATION_STUDIO__LOCAL MBMOpen_typ MOpen;_LOCAL MBMaster_typ Master;_LOCAL MBMClose_typ MClose;_LOCAL MBMCmd_typ MCmd;_LOCAL BOOL fMOpen, fMaster, fMClose, fMCmd,execute;_LOCAL USINT ascii;_LOCAL UINT statusMOpen, statusMaster, statusMClose, statusMCmd,timeout,recordnum;_LOCAL UINT order[14];/*ÉèÖÃÉÏ´«Ë³Ðò*/_LOCAL UDINT ident,counter;_LOCAL STRING device[32],mode[32],config[32],danwei[10];/* modbus VAR */_LOCAL BOOL LocalMB0[6],LocalMB1[5];/*_LOCAL USINT data[150];*/_LOCAL INT EventMB0,EventMB1,EventMB3,EventMB4,*pEventMB4,LocalMB3[5],LocalMB4[15],LocalA[6],*pLocalMB4;_LOCAL INT LocaloMB4[15];_LOCAL UINT i;/*void ShunXu(void); */_INIT void master_init (void){/* modbus VAR */strcpy(&danwei[0], "C");pEventMB4 = &EventMB4;pLocalMB4 = &LocalMB4[0];EventMB0 = 1;EventMB1 = 1;EventMB3 = 1;EventMB4 = 1;i = 0;/* init for OPEN */ascii = 0; /* 0 = RTU / 1 = ASCII */#ifdef _AR_I386_AUTOMATION_STUDIO_strcpy(&device[0], "SL1.SS1.IF1");if (!ascii) strcpy(&mode[0], "PHY=RS485/BD=9600/PA=E/DB=8"); else strcpy(&mode[0], "PHY=RS232/BD=9600/PA=E/DB=7");#elsestrcpy(&device[0], "SL1.SS1.IF1");if (!ascii) strcpy(&mode[0], "RS232,9600,E,8,1");else strcpy(&mode[0], "RS232,9600,E,7,1");#endifstrcpy(&config[0], "mb_cmd");timeout = 500;for(i=0;i<14;i++){order[i]=i+1;}/* modbus - Slave OPEN */MOpen.enable = 1;MOpen.pDevice = (UDINT) &device[0];MOpen.pMode = (UDINT) &mode[0];MOpen.pConfig = (UDINT) &config[0];MOpen.timeout = timeout;MOpen.ascii = ascii;MBMOpen(&MOpen);statusMOpen = MOpen.status;if (!statusMOpen) ident = MOpen.ident;fMaster = 0;fMCmd = 0;fMClose = 0;}_CYCLIC void master_cyclic (void){if (fMOpen){/* modbus - Master OPEN */MOpen.enable = 1;#ifdef _AR_I386_AUTOMATION_STUDIO_strcpy(&device[0], "SL1.SS1.IF1");if (!ascii) strcpy(&mode[0], "PHY=RS485/BD=9600/PA=E/DB=8");else strcpy(&mode[0], "PHY=RS232/BD=9600/PA=E/DB=7"); #elsestrcpy(&device[0], "SL1.SS1.IF1");if (!ascii) strcpy(&mode[0], "RS232,9600,E,8,1");else strcpy(&mode[0], "RS232,9600,E,7,1");#endifMOpen.pDevice = (UDINT) &device[0];MOpen.pMode = (UDINT) &mode[0];MOpen.pConfig = (UDINT) &config[0];MOpen.timeout = timeout;MOpen.ascii = ascii;MBMOpen(&MOpen);statusMOpen = MOpen.status;if (!statusMOpen){ident = MOpen.ident;fMOpen = 0;fMaster = 0;fMCmd = 0;fMClose = 0;}else{ident = 0;fMOpen = 0;}}/*if (fMaster){*//* modbus - Master */Master.enable = 1;Master.ident = ident;MBMaster(&Master);statusMaster = Master.status;execute = Master.execute;recordnum = Master.recordnum;if (!statusMaster){fMaster = 1;counter++;}else if (statusMaster == 65535){fMaster = 1;}else{fMaster = 0;}for(i=0;i<14;i++){LocaloMB4[i]=LocalMB4[order[i]-1]; }}/*void ShunXu(void){if(a1==0||a1>=15) a1=1;if(a2==0||a2>=15) a2=2;if(a3==0||a3>=15) a3=3;if(a4==0||a4>=15) a4=4;if(a5==0||a5>=15) a5=5;if(a6==0||a6>=15) a6=6;if(a7==0||a7>=15) a7=7;if(a8==0||a8>=15) a8=8;if(a9==0||a9>=15) a9=9;if(a10==0||a10>=15) a10=10;if(a11==0||a11>=15) a11=11;if(a12==0||a12>=15) a12=12;if(a13==0||a13>=15) a13=13;if(a14==0||a14>=15) a14=14; }*/_EXIT void slave_exit (void) {MClose.enable = 1;MClose.ident = ident;MBMClose(&MClose);}。
竭诚为您提供优质文档/双击可除modbus协议下上位机编程实例
篇一:modbus协议下的上位机地址
Rs485采取流量计数据,经串口com1的2号地址读到int
ouch中来,双字40001、40002为浮点型瞬时流量,读到上位机项目为40001F双字40004、40005为长整型累计流量,读到上位机项目为40004l
驱动设置与intouch标记名的设置
驱动设置:
项目名设置
注:在不修改驱动设置的情况下,s=s1+s2*65535
s=s2+s1*65535
根据各个厂家的仪表,上面工式有区别,设计时各个测试一下。
篇二:modbus通讯协议实例
上海安标电子有限公司
——pc39a接地电阻仪通信协议
通信协议:
波特率:9600数据位:8校验位:无停止位:1
上位机(计算机):
注:1id:1个字节,由单机来定(0~255)
2command:1个字节,读:3或4,写:6
3数据地址:2个字节,寄存器地址,读从100开始,写从200开始4Value:2个字节,读:个数(以整型为单位),写:命令/数据(以整型为单位)5cRc:计算出cRc下位机(pc39a
):注:1id:1个字节,由单机来定(0~255)
2command:1个字节,收到的上位机命令
3数据个数:1个字节,返回数据个数(以字节为单位)4Value:n个字节,是返回上位机的数据5cRc:计算出cRc 写命令,若正确返回收到的数据:若错误注:1id:1个字节,由单机来定(0~255)
2command:1个字节,收到的上位机命令或上0x80,
如收到3,返回0x83
3数据:1个字节,错误的指令错误指令
1:表示command不存在2:表示数据地址超限
4cRc:计算出cRc
例如读pc39a电流数据:
机器地址为12,电流的数据地址100,数据为15.45(a)(一个整型数据)
从机返回如正确:
如错误:
例如发pc39a启动命令:
机器地址为12,命令的地址200,数据为25000(25000表示启动)
主机:
从机返回
篇三:基于modbus协议的上位机与plc及智能仪表之间的通信实现方法
基于modbus协议的上位机与plc及智能仪表之间的通信实现方法
摘要:介绍了modbus通信协议的特点,结合作者的实践经验,介绍基于modbus协议下工控机为主站,plc及智能仪表为从站的通讯的实现方法.
关键词:modbus通信协议Rs-485plc工控机智能仪表
一、引言:
可编程控制器由于抗干扰能力强,可靠性高,编程简单,性能价格比高,在工业控制领域得到越来越广泛应用。
基于plc的控制系统多数情况下会以微机为主机,plc为从机.完成对生产过程的自动控制,工艺参数的显示和修。