步科触摸屏串口自定义协议框架说明 下载本文

内容发布更新时间 : 2024/6/29 14:19:45星期一 下面是文章的全部内容请认真阅读。

串口自定义协议框架说明

概述

串口自定义协议的驱动目前可以支持三个串口同时定制自由协议,分别为Customized UART protocol1,Customized UART protocol2,Customized UART protocol3,可对应三个串口。组态的使用方式同其他的PLC组态方式一样,直接连接屏即可,通过LW和LB寄存器进行数据的交换。

框架说明

串口自定义协议程序的流程图

循环执行ProcessComx

图1

需要用户实现的函数

void ProcessComx(int fd)

调用方式:周期执行,间隔可调用Delay函数来加大循环周期,fd为串口句柄 功能:用户程序的“main函数”

供用户调用的API函数

void Delay(int ms)

功能:用于延迟ProcessComx的运行周期,防止频繁读写,减轻控制器的通信压力 参数:ms的单位为毫秒, 非零

int ReadData(int fd, unsigned char *read_buff, int count, int ms)

功能:从串口读取count个数据,存放在read_buff中。ms是读数据超时时间。 参数:ms的单位为毫秒, 非零

int WriteData(int fd, unsigned char *read_buff, int count)

功能:从串口发送count个数据,发送数据存放在read_buff中。

unsigned short Read_LW(unsigned int n)

功能:读取LWn的寄存器的值 参数:n偏移量,最大为9999

void Write_LW(unsigned int n,unsigned short val) 功能:将val 写入LWn的寄存器

参数:n偏移量、最大8999,val待写入的值

void CopyToLW(unsigned int offset,const void *src, int n)

功能:由src所指的内存区域复制n个字节到Lw_offset所在的内存区域 参数:src和LW_offset所在的内存区域不能重叠

void CopyFromLW(unsigned int offset,const void *src, int n)

功能:由Lw_offset所在的内存区域到src所指的内存区域复制n个字节 参数:src和LW_offset所在的内存区域不能重叠

void SetLBON(unsigned int n) 功能:设置LBn寄存器为1 参数:n偏移量、最大8999

void SetLBOFF(unsigned int n)

功能:设置LBn寄存器为0 参数:n偏移量、最大8999

int GetLB(unsigned int n)

功能:读取LBn寄存器的状态 参数:n偏移量、最大9999

int SetLWBON(unsigned int n, unsigned int offset)

功能:设置LW.b寄存器为1,如设置LW5.4,则n=5,offset=4 参数:n偏移量、最大8999,offset最大为16

int SetLWBOFF(unsigned int n, unsigned int offset)

功能:设置LW.b寄存器为0,如设置LW5.4,则n=5,offset=4 参数:n偏移量、最大8999,offset最大为16

int GetLWB(unsigned int n, unsigned int offset)

功能:读取LW.b寄存器的状态,如设置LW5.4,则n=5,offset=4 参数:n偏移量、最大9999,offset最大为16

如何生成驱动

1. 用全功能版的cygwin覆盖EV5000中的

2. 在cygwin所在目录新建一个名为“customized_driver”文件夹

3. 在custmoized_driver目录下是三个文件夹,分别代表可自定义的三种自由协议