串口自定义协议框架说明
概述
串口自定义协议的驱动目前可以支持三个串口同时定制自由协议,分别为Customized UART protocol1,Customized UART protocol2,Customized UART protocol3,可对应三个串口。组态的使用方式同其他的PLC 组态方式一样,直接连接屏即可,通过LW 和LB 寄存器进行数据的交换。
框架说明
串口自定义协议程序的流程图
循环执行
图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目录下是三个文件夹,分别代表可自定义的三种自由协议
图2
4. Cusomized UART Protocolx目录中的内容如图3所示,其中COMx.c 由用户编写(提供参
照样例),其他的由Kinco 提供
图3
5. COMx.c 编写好后,运行build.bat 批处理文件,即可在\lib\plc目录生成Customized UART
protocolx.so 驱动(见图4),Customized UART protocolx.ge是与该驱动配套的文件,固定不变。
图4
编译、生成驱动
编写好程序后,只需运行图3中的“build.bat ”批处理文件即可生成驱动文件,生成的驱动文件位于EV5000安装目录下\lib\plc中,名称为“Customized UART protocolx.so ” “Customized UART protocolx.ge”
如何使用驱动
1. 在组态工程中,添加HMI 和自由协议的PLC ,如图
5
2. 图5 串口通信参数(通信模式,波特率,数据位等等)的设置在HMI 属性页面
图6
2. 制作自己的组态画面,目前组态画面与自由协议之间,通过LW 和LB 来交换数据
注意事项:
1. 目前支持的波特率是4800,9600,19200,38400,57600,115200,模式为COM0 232/485/422,COM1 232/485/422,COM2 232
串口自定义协议框架说明
概述
串口自定义协议的驱动目前可以支持三个串口同时定制自由协议,分别为Customized UART protocol1,Customized UART protocol2,Customized UART protocol3,可对应三个串口。组态的使用方式同其他的PLC 组态方式一样,直接连接屏即可,通过LW 和LB 寄存器进行数据的交换。
框架说明
串口自定义协议程序的流程图
循环执行
图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目录下是三个文件夹,分别代表可自定义的三种自由协议
图2
4. Cusomized UART Protocolx目录中的内容如图3所示,其中COMx.c 由用户编写(提供参
照样例),其他的由Kinco 提供
图3
5. COMx.c 编写好后,运行build.bat 批处理文件,即可在\lib\plc目录生成Customized UART
protocolx.so 驱动(见图4),Customized UART protocolx.ge是与该驱动配套的文件,固定不变。
图4
编译、生成驱动
编写好程序后,只需运行图3中的“build.bat ”批处理文件即可生成驱动文件,生成的驱动文件位于EV5000安装目录下\lib\plc中,名称为“Customized UART protocolx.so ” “Customized UART protocolx.ge”
如何使用驱动
1. 在组态工程中,添加HMI 和自由协议的PLC ,如图
5
2. 图5 串口通信参数(通信模式,波特率,数据位等等)的设置在HMI 属性页面
图6
2. 制作自己的组态画面,目前组态画面与自由协议之间,通过LW 和LB 来交换数据
注意事项:
1. 目前支持的波特率是4800,9600,19200,38400,57600,115200,模式为COM0 232/485/422,COM1 232/485/422,COM2 232