串口自定义
框架说明 概述 串口自定义协议的驱动目前可以支持三个串口同时定制自由协议,分别为CustomizedUARTprotocol1,CustomizedUARTprotocol2,CustomizedUARTprotocol3,可对应三个串口。组态的使用方式同其他的PLC组态方式一样,直接连接屏即可,通过LW和LB寄存器进行数据的交换。 框架说明 串口自定义协议程序的
图 循环执行ProcessComx 图1 需要用户实现的函数 voidProcessComx(intfd) 调用方式:周期执行,间隔可调用Delay函数来加大循环周期,fd为串口句柄功能:用户程序的“main函数” 供用户调用的API函数 voidDelay(intms) 功能:用于延迟ProcessComx的运行周期,防止频繁读写,减轻控制器的通信压力参数:ms的单位为毫秒,非零 intReadData(intfd,unsignedchar*read_buff,intcount,intms) 功能:从串口读取count个数据,存放在read_buff中。ms是读数据超时时间。参数:ms的单位为毫秒,非零 intWriteData(intfd,unsignedchar*read_buff,intcount) 功能:从串口发送count个数据,发送数据存放在read_buff中。 unsignedshortRead_LW(unsignedintn) 功能:读取LWn的寄存器的值参数:n偏移量,最大为9999 voidWrite_LW(unsignedintn,unsignedshortval)功能:将val写入LWn的寄存器 参数:n偏移量、最大8999,val待写入的值 voidCopyToLW(unsignedintoffset,constvoid*src,intn) 功能:由src所指的内存区域复制n个字节到Lw_offset所在的内存区域参数:src和LW_offset所在的内存区域不能重叠 voidCopyFromLW(unsignedintoffset,constvoid*src,intn) 功能:由Lw_offset所在的内存区域到src所指的内存区域复制n个字节参数:src和LW_offset所在的内存区域不能重叠 voidSetLBON(unsignedintn)功能:设置LBn寄存器为1参数:n偏移量、最大8999 voidSetLBOFF(unsignedintn) 功能:设置LBn寄存器为0参数:n偏移量、最大8999 intGetLB(unsignedintn) 功能:读取LBn寄存器的状态参数:n偏移量、最大9999 intSetLWBON(unsignedintn,unsignedintoffset) 功能:设置LW.b寄存器为1,如设置LW5.4,则n=5,offset=4参数:n偏移量、最大8999,offset最大为16 intSetLWBOFF(unsignedintn,unsignedintoffset) 功能:设置LW.b寄存器为0,如设置LW5.4,则n=5,offset=4参数:n偏移量、最大8999,offset最大为16 intGetLWB(unsignedintn,unsignedintoffset) 功能:读取LW.b寄存器的状态,如设置LW5.4,则n=5,offset=4参数:n偏移量、最大9999,offset最大为16 如何生成驱动 1.用全功能版的cygwin覆盖EV5000中的 2.在cygwin所在目录新建一个名为“customized_driver”文件夹 3.在custmoized_driver目录下是三个文件夹,分别代
可自定义的三种自由协议 图2 4.CusomizedUARTProtocolx目录中的内容如图3所示,其中COMx.c由用户编写(提供参 照样例),其他的由Kinco提供 图3 5.COMx.c编写好后,运行build.bat批处理文件,即可在\\lib\\plc目录生成CustomizedUART protocolx.so驱动(见图4),CustomizedUARTprotocolx.ge是与该驱动配套的文件,固定不变。 图4 编译、生成驱动 编写好程序后,只需运行图3中的“build.bat”批处理文件即可生成驱动文件,生成的驱动文件位于EV5000安装目录下\\lib\\plc中,名称为“CustomizedUARTprotocolx.so”“CustomizedUARTprotocolx.ge” 如何使用驱动 1.在组态工程中,添加HMI和自由协议的PLC,如图5 2. 图5 串口通信参数(通信模式,波特率,数据位等等)的设置在HMI属性页面 图6 2.制作自己的组态画面,目前组态画面与自由协议之间,通过LW和LB来交换数据 注意事项: 1.目前支持的波特率是4800,9600,19200,38400,57600,115200,模式为COM0 232/485/422,COM1232/485/422,COM2232