plc触摸屏程序的编写有几种方法各是什么

plc触摸屏程序的编写有几种方法各是什么,第1张

介绍一种在PIC单片机触摸屏之间采用Modbus协议实现异步串行通信的方法。简单介绍了Modbus通信协议,给出了硬件电路连接图、程序流程图以及用PIC单片机C语言编写的部分通信程序。实际使用证明该方法数据传输稳定可靠,并提供了良好的人机交互环境。

关键词:触摸屏 PIC单片机 Modbus协议 通信

工控中经常需要观察系统的运行状态或者修改运行参数。触摸屏能够直观、生动地显示运行参数和运行状态,而且通过触摸屏画面可以直接修改系统运行参数,人机交互性好。单片机广泛应用于工控领域中,与触摸屏配合,可组成良好的人机交互环境。触摸屏和单片机通信,需要根据触摸屏采用的通信协议为单片机编写相应的通信程序。Modbus协议是美国Modicon公司推出的一种有效支持控制器之间以及控制器经由网络(例如以太网)和其它设备之间进行通信的协议。本文以PIC16F877单片机和人机电子有限公司的eView MT510T型触摸屏为例,介绍其通信程序的开发过程。

1 系统结构

实现触摸屏与单片机的通讯,主要是解决通讯协议的问题。本文使用开放的Modbus通讯协议,以触摸屏作主站,单片机作从站。eView触摸屏本身支持Modbus通讯协议,如果单片机也支持Modbus协议,就可以进行通信了。触摸屏与单片机之间采用的RS-232C兼容接口直接连接,传输速率设置为9600kb/s。图1为该系统的电路图。

将PIC16F877单片机RC6、RC7口设置为异步串行通信模式,经过MAX232芯片将TTL电平转换为RS232电平,再与eView触摸屏PLC[RS-232]接口相连,即完成了硬件连接。eView触摸屏PLC[RS-232]接口的管脚2为TXD,管脚3为RXD。

2 Modbus通信协议介绍

Modbus通信协议是一种串行的主从通信协议,网络里仅有一台设置可作为主机(称Master),其它设备作为从机(称Slaver),主机不需编号,从机必须编号。协议定义了主机查询及从机应答的信息帧格式。通信时,主机首先向从机发出请求信息,符合相应地址码的从机接收通讯命令,并除去地址码,读取信息,如果没有出错,则执行相应的任务,然后把执行结果返给主机。若从机接收到的校验码与本机计算的不同,则说明数据在通信过程中出现错误,从机把这次请求视为无效,功能代码将被修改以用于指出回应消息是错误的,同时数据段包含了描述此错误信息的代码。当主机收到这一信息时,会重新发送请求信息。校验方式分为LCR(传送数据为ACSII时)校验或CRC(传送数据为二进制时)校验,这里采用CRC校验方式。

信息传输为异步方式,并以字节为单位。主从站之间通讯的字格式如表1所示。

表1 通讯的字格式

字格式(串行数据) 10位二进制

起始位 1位

数据位 8位

奇偶校验位 无

停止位 1位

Modbus协议可支持ASCII码或二进制格式的数据传输。ACSII码方式下每一个字节数据分两个字节传送,二进制方式下用一个字节传送,为了减少数据传输量,一般选二进制数据方式。各个区允许发送的字节均为16进制的0~9,A~F。二进制信息帧标准结构为:

初始结构 ≥4字节的时间

地址码 1字节

功能码 1字节

数据区 N字节

错误校验 16位CRC码

结束结构 ≥4字节的时间

二进制模式中,信息开始至少需要35个字符的静止时间,依据使用的波特率,很容易计算这个静止时间。发送完最后一个字符后,也有一个至少35个字符的静止时间,然后才能发送一个新的信息。网络上的设备连续监测网络上的信息,包括静止时间。

3 单片机与触摸屏地址的对应关系

eView触摸屏只支持Bit和Word地址类型,而实际的单片机或其它控制器还有Byte、Double Word等表示方法,因此在进行通信时,需要把单片机和触摸屏的数据进行变换。触摸屏画面元件读取地址的设备类型有LW、0x、1x、3x、4x、RWI、RW等选项。其中,LW表示该元件读取的是触摸屏内部的地址,如其它元件的地址;0x表示读取的是控制器的输出信号;1x表示读取的控制器的输入信号;3x和4x指控制器的寄存器地址类型,其中4x是可读可写的,3x是只读的;RWI、RW都是触摸屏的内部地址,起辅助作用。使用这些读取地址的设备类型,触摸屏即可显示或设定控制器寄存器或I/O口的数值。以“数值输入”元件为例,通过“小键盘”输入数据即可设置单片机寄存器或I/O口的数值。如果启动了“触发地址”,那么当被触控时,输入的数据就被存放到了指定的单片机地址中。

4 通信程序的开发

触摸屏与单片机的通信程序采用PIC单片机C语言编写。编译工具选择Hitech公司的PICC编译器。程序共分三大模块,即初始化模块、数据接收模块以及数据处理及发送模块。主程序流程图如图2所示。

PIC16F877单片机USART功能模块带有一个八位的波特率发生器BRG,BRG支持USART的同步和异步工作方式。用SPBRG寄存器控制一个独立的八位定时器的周期。在异步方式下,发送状态/控制寄存器TXSTA的BRGH位(即D2)被用来控制波特率。对串行口进行的初始化如下:

GIE=1; %全局中断允许;

SPBRG=25; %设置波特率为9600;

TXSTA=0x04; %选择异步高速方式;

RCSTA=0x80; %允许同步串行口工作;

RTISC6=1;

TRISC7=1; %将C口的RC6和RC7设置为异步串行通信模式;

PFIE=1; %外围接口中断允许;

RCIE=1; %USART接收中断允许;

TXIE=1; %USART发送中断允许;

数据接收模块由一个中断函数组成。该中断函数将触摸屏发来的Modbus数据帧存储在一个自定义的数组中,当一帧数据接收完时,置接收结束标志位为1,转入数据处理及发送模块。串行通信接收器的核心是接收移位寄存器RSR,当接收到停止时,如果RCREG缓冲器为空,RSR就把接收到的数据送入RCREG。传送完成后,接收中断标志位RCIF被置1。实际的中断是否被CPU响应,可以通过设置外围接口中断允许寄存器PIE1的中断允许位RCIE来控制。

数据处理及发送模块执行Modbus协议功能码对应的运用。eView触摸屏与单片机以Modbus协议通信,用到的Modbus功能码如表2所示。

表2 通信程序用到的功能码

功能码 eView地址名称 含 义 作 用

01 0x 读开关量输出 读取一路或多路开关量输出状态

03 4x 读保持寄存器 读取一个或多个保持寄存器的数据

05 0x

1x 写开关量输出 强置一路继电器的“分/合”输出

16 3x

4x 预置多寄存器 把具体的数据装入一组连贯的保持寄存器

以Modbus功能码03为例来说明触摸屏及单片机的实际通信数据格式。如单片机地址编号为01H,触摸屏需要查看单片机中地址为0031H的寄存器的值,发送命令格式如表3所示。

表3 触摸屏发送数据结构

数据段名称 数据值

地址 01

功能码 03

读取地址高位 00

读取地址低位 31

读取数据个数高位 00

读取数据个数低位 01

CRC校验码高位 D5

CRC校验码低位 C5

假设单片机中地址为0031H的寄存器中断为05H,则单片机的回复命令如表4所示。

表4 单片机应答数据结构

数据段名称 数据值

地址 01

功能码 03

读取字节数 02

寄存器数据高位 00

寄存器数据低位 05

CRC校验码高位 78

CRC校验码低位 47

当波特率达到38400kb/s时,通信仍然稳定可靠。本系统具有连接电路简单、组态灵活、通信可靠性高等特点,并已成功应用于物料筛选控制系统项目中。由于Modbus通信协议的开放性的特点,国外进口控制器串行通信大者支持该协议,因此本文所实现的采用Modbus协议的串行通信具有广泛的应用价值。

QQ94504093

PLC(即可编程逻辑控制器,Programmable Logic Controller)是用来取代用于电机控制的顺序继电器电路的一种器件。PLC通过检查输入的状态来控制它的输出点的闭合与打开。用户输入一段程序(通常是通过软件),PLC就给出相应的结果。

PLC在实际中用的很多。只要有工业的地方,就有PLC存在的机会。如果你就在机器制造、包装、物料输送、自动装配等行业中工作,那么你可能已经在使用它了。如果没有的话,你就是正在浪费金钱和时间。几乎所有需要电气控制的地方都需要PLC。

例如,我们假设当一个开关闭合时,我们想让一个电磁阀先开启5秒钟,然后闭合,而不管开关处于什么状态。我们用一个简单的外部定时器就可心完成这一动作。但是,如果该过程有10个开关和10个电磁阀呢?我们需要10个外部定时器。如果在这一应用中也需要对开关的打开次数单独计量呢?我们需要大量的外部计数器。

可以看出,一个控制过程越复杂,我们就越需要使用PLC。使用PLC,我们可以很容易地对它的输入计数,并且在指定的时刻开启电磁阀。

去看看《一步一步学PLC编程》,总共5本,你看三菱的plc就行,如果你的PLC是Q系列就买GX Wroks,如果你的PLC是FX2N就买三菱的Develaper就可以了,或者《彻底学会西门子PLC变频器触摸屏综合应用》,看完你就精通了,有图纸设计有编程有如何通讯

可以装一个测速装置。

可以在电机的传动部位上安装一个测速装置,用接近开关来接收,或者用编码器,编码器比较好,可以根据高速计数器来读取编码器的数值,然后根据数值和时间计算出电机的转速,再根据程序中的比较来确定电机是否停止。

以上就是关于plc触摸屏程序的编写有几种方法各是什么全部的内容,包括:plc触摸屏程序的编写有几种方法各是什么、plc是什么意思,plc编程是什么、关于PLC物料分拣系统怎么设计需要注意什么等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9411415.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-28
下一篇 2023-04-28

发表评论

登录后才能评论

评论列表(0条)

保存