0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看威廉希尔官方网站 视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

智嵌物联ZQWL可编程串口IO控制器(略懂C语言即可使用)

智嵌物联ZQWL 2022-02-19 11:10 次阅读
  1. 概述

智嵌物联串口IO模块提供了用户编程接口,增强了应用的灵活性,简化了用户的编程的难度,缩短了开发产品的周期;用户不需要了解IO板卡底层驱动,只需将控制逻辑和通讯协议嵌入其中即可。

串口IO模块提供keil开发环境下的函数库,功能强大,使用方便。开发人员只需略懂C语言(提供详尽威廉希尔官方网站 指导和咨询)就可以在本司串口IO平台上开发所需功能。

  1. 开关量相关函数
    1. Write_Relay函数

函数原型如下:

poYBAGIQXymAXiQgAACF3bMkkFM425.png

该函数需被其他函数调用才能使用。

举例:

Write_Relay(0,1);//闭合第一路继电器的常开触点,断开常闭触点。

Write_Relay(1,0);//断开第二路继电器的常闭触点,打开常开触点。

在使用过程中,注意传入的参数(channel,status)不能出错,channel的范围为0到N,N为控制板IO输出点个数;status的值只能为0或1。参数超出定义范围时,函数将返回错误信息

  1. Read_Relay函数

函数原型如下:

pYYBAGIQXymAU63LAAB1sbz1Bdc328.png

该函数需被其他函数调用才能使用。

举例:

unsigned char temp = 0;

temp =Read_Relay(0);//读取第一路的输出状态并将结果赋给temp。

temp =Read_Relay(3);//读取第四路的输出状态并将结果赋给temp。

然后根据temp的值即可判断当前IO输出的状态:

temp为0则:常开触点断开,常闭触点闭合。

temp为1则:常闭触点断开,常开触点闭合。

temp为2则:传入的参数channel错误。

temp为3则:其他未知错误。

  1. 开关量输入相关函数
    1. Read_IN函数

函数原型如下:

poYBAGIQXymAVRsXAABbj1s6a6s531.png

该函数需被其他函数调用才能使用。

举例:

unsigned char temp = 0;

temp =Read_IN(0);//读取第一路的输入状态并将结果赋给temp。

temp =Read_Relay(3);//读取第四路的输入状态并将结果赋给temp。

然后根据temp的值即可判断当前IO输入的状态:

temp为0则:该路为无信号输入(逻辑值为0,低电平)。

temp为1则:该路为有信号输入(逻辑值为1,高电平)。

temp为2则:传入的参数channel错误。

  1. 串口通讯相关函数

智嵌物联双串口IO控制板均有RS232RS485接口,这两种接口可以独立使用。

串口接收缓冲器以及缓冲器大小在“ZQWL_IO_xBNRRx.h”文件中有定义:

poYBAGIQXymAeBaOAAAg7xzgwIc760.png
  1. RS232_Init函数

函数原型如下:

pYYBAGIQXyqAJ5L-AAC40ya62XI506.png

该函数为RS232串口初始化函数,如果要使用RS232通讯功能,必须调用该函数来初始化通讯相关参数。

举例:

pYYBAGIQXyqATlHSAAAJX7g4oOg080.png

注意该函数的第三个参数parity,必须为以下三种:

poYBAGIQXyuAWQ6zAAADgx7TV4I798.png

如果该函数调用成功则返回值为0,否则返回相应的错误信息。

  1. RS485_Init函数

函数原型如下:

poYBAGIQXyuAdDF2AAC55-Cad34746.png

该函数为RS485串口初始化函数,如果要使用RS485通讯功能,必须调用该函数来初始化通讯相关参数。

举例:

poYBAGIQXyuAG62XAAAJmpdRkFg714.png

注意该函数的第三个参数parity,必须为以下三种:

如果该函数调用成功则返回值为0,否则返回相应的错误信息。

  1. RS232_Send_Data函数

函数原型如下:

pYYBAGIQXyuAI045AABQJzCOlSQ024.png

该函数为串口发送函数,调用该函数前必须正确调用RS232_Init()函数。

举例1,直接发送字符串:

RS232_Send_Data("1234567890",10);

举例2,将数组中数据发送出去:

unsigned char temp[10];

RS232_Send_Data(temp,10);

  1. RS485_Send_Data函数

函数原型如下:

pYYBAGIQXyuAVEfhAABRCq7kB8U390.png

该函数为串口发送函数,调用该函数前必须正确调用RS485_Init()函数。

举例1,直接发送字符串:

RS485_Send_Data("1234567890",10);

举例2,将数组中数据发送出去:

unsigned char temp[10];

RS485_Send_Data(temp,10);

  1. RS232_Recv_Handler函数

函数原型如下:

poYBAGIQXyuARtC0AACQJOUVd2w806.png

该函数为类似中断函数,不能被其他函数调用。必须在正确调用RS232_Init()函数后该函数才能生效。建议在该函数中首先将buff中的数据复制出来,然后退出,在别的函数中进行数据的处理。

举例:

pYYBAGIQXyyAfhF5AAAl3qnsjvk987.png
  1. RS485_Recv_Handler函数

函数原型如下:

poYBAGIQXyyAF0mMAACOt9MbdL8662.png

该函数为类似中断函数,不能被其他函数调用。必须在正确调用RS485_Init()函数后该函数才能生效。建议在该函数中首先将buff中的数据复制出来,然后退出,在别的函数中进行数据的处理。

举例:

poYBAGIQXyyAdb69AAAjqCZYHEk125.png
  1. 系统指示灯相关函数

该系列控制板有1个系统LED指示灯,可以用来指示系统运行的状态。

  1. RUN_LED_Toggle函数

函数原型如下:

pYYBAGIQXyyAMyZhAABNziPgoco773.png

此函数实现系统LED的状态翻转功能(调用后原来熄灭则会点亮,原来点亮则会熄灭)。

举例:

RUN_LED_Toggle();//调用后,指示灯状态翻转。

  1. RUN_LED_ON函数

函数原型如下:

pYYBAGIQXyyANOnkAABKJCT4kDI349.png

举例:

RUN_LED_ON();//点亮系统LED指示灯

  1. RUN_LED_OFF函数

函数原型如下:

poYBAGIQXyyANPPSAABKaON2I1M934.png

举例:

RUN_LED_OFF();//熄灭系统LED指示灯

  1. 延时相关函数
    1. Delay_ms函数

函数原型如下:

pYYBAGIQXy2APC66AABDF9N_hJY181.png

举例:

Delay_ms(500);//延时500毫秒。

Delay_ms(2000);//延时2000毫秒。

  1. Delay_us函数

函数原型如下:

poYBAGIQXy2AEBANAABRSBGt4sA051.png

举例:

Delay_us(500);//延时500微秒。

Delay_us(999);//延时999微秒。

  1. 定时器相关函数
    1. Timer_IRQHandler函数

函数原型如下:

pYYBAGIQXy2AIKzSAAB1lBK8cPc237.png

该函数为中断函数,不能被其他函数调用。每隔1ms中断一次,用户以此为基础可以设计出各种定时服务功能。例如设计一个10ms定时服务功能:

poYBAGIQXy2AGjWrAABV7HPGjtQ878.png
  1. 看门狗相关函数
    1. IWDG_Init函数

函数原型如下:

pYYBAGIQXy2AJQYtAADJjzsd6uU012.png

举例:

IWDG_Init(WD_1000MS);//设置看门狗定时器为1000毫秒。

IWDG_Init(WD_2000MS);//设置看门狗定时器为2000毫秒。

  1. Feed_Dog函数

函数原型如下:

poYBAGIQXy2Ac653AAAqwgAi4-4022.png

如果调用了IWDG_Init(),那么, Feed_Dog()函数就必须周期调用,并且调用周期必须小于看门狗定时器设定值。否则,系统将不断的复位。

建议在产品开发阶段先不用看门狗功能,产品发布时再加上此功能。

  1. Flash相关函数

该系列控制板均提供128字节的用户flash空间,可以用来存放控制板掉电后需要保存的参数,比如波特率,地址码等。

  1. User_Flash_Write函数

函数原型如下:

pYYBAGIQXy6ANQJwAACsPCHrvos325.png

举例:

poYBAGIQXy6AKmuQAAAftixOKeU309.png
  1. User_Flash_Read函数

函数原型如下:

poYBAGIQXy6AQzaaAACdEBaX2AQ388.png

举例:

pYYBAGIQXy6ABMfJAAAmKw6B5Xo012.png
  1. 系统异常相关函数
    1. HardFault_Handler函数

函数原型如下:

poYBAGIQXy6AQE5QAABY4XUDn4A871.png

当系统有异常时,比如指针操作不当、数组操作不当等,会进入此中断。

  1. 系统复位相关函数
    1. MCU_Soft_Reset函数

函数原型如下:

pYYBAGIQXy-AQHRAAABEcZwYkgk065.png

调用该函数后,系统将复位。

  1. CAN相关函数

只有控制板硬件具有CAN通讯的版本才支持CAN相关函数。

CAN相关的数据结构定义:

poYBAGIQXzCAMtNnAAn_l79TetY226.png
  1. CAN_Configuration函数
poYBAGIQXy-AaFvTAALmY8GDNBU707.png

使用CAN通讯前必须正确调用该函数。

  1. CAN_Recv_IRQHandler函数
pYYBAGIQXy-ARIigAALgCnER7p8510.png

例如:

pYYBAGIQXzCAanuhAAS0lXg5cls865.png
  1. CAN_Send_Data函数
poYBAGIQXzCAWbo0AAMMYg8L2Hc267.png
  1. main函数

该函数为系统入口函数,提供如下示例:

pYYBAGIQXzCAPNKDAArS0oF0FZ8237.png
  1. 模块编程
    1. 开发环境

该模块开发环境使用keil 5.10版本(其他版本未验证),有关keil的使用教程请参考其他开发文档,keil5的安装包在MDK5.zip里面。

在“软件包”里有该控制板的keil5工程

打开“软件包”:

pYYBAGIQXzGAUvmjAAAMLPY1U_w270.png

此即为该控制板的工程文件, 打开文件:

poYBAGIQXzGAKzJDAAAI_Bqb03w644.png

打开“Proj”:

pYYBAGIQXzGAJDYnAAA9kkYQ5kY261.png

双击上图中的“pro”,则可以通过keil软件打开该工程,工程配置如下:

poYBAGIQXzGAB8OcAAH5w5s_O6E180.png

有关KEIL软件的使用请自己查找资料学习。

工程编译后会生成一个IO_APP.bin文件(路径:ZQWL_IO_APP(双串口+CAN)_V1.2\project\BIN):

poYBAGIQXzGAc9WaAAAQE4j5SXw008.png

如果是其他网络模块,则需要将“xBXRA16_V1.0.lib”从工程中移除,再添加上相对应的lib文件即可(路径在:ZQWL_IO_APP\App):

pYYBAGIQXzGAExM6AAALk31oNxI441.png
  1. 程序下载

智嵌串口IO模块的固件是通过《智嵌物联 串口继电器控制板固件升级工具》来下载程序的:

pYYBAGIQXzKAFZO8AADIfz_Njy8864.png

点击上图的“浏览”,将编译好的IO_APP.bin文件载入软件,然后点“打开”,接点“开始升级”,即可实现固件的下载,下完成后自动运行:

poYBAGIQXzKAJfLzAACAUhOZa8Y362.png
  1. 程序出错处理

在调试程序时难免会出现程序出错,出错后可能造成不能直接对模块进行固件下载,这时需要按照如下步骤操作:

第一步:断电。

第二步:将拨码开关全部拨到OFF状态(强制进入升级固件状态)。

第三步:上电,此时看到模块的运行灯快速闪烁,说明进入到了固件下载模式,此时就可以对模块下载固件了。注意此过程中要保证拨码开关一直全OFF状态。

注意,智嵌物联网ZQWL的部分网络IO控制器也支持编程功能,如型号ZQWL-NET8880M,Smart IO,该类产品功能更强大。除此之外,智嵌物联ZQWL新推出的Smart GW串口服务器也具有编程功能,该类产品通讯接口支持4G,网口,WIFI,CAN,RS485等,部分产品也具有IO扩展功能,性能更强大,使用更方便。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • IO控制器
    +关注

    关注

    0

    文章

    26

    浏览量

    7545
收藏 人收藏

    评论

    相关推荐

    TMS320C6000 DSP软件可编程锁相环控制器指南

    电子发烧友网站提供《TMS320C6000 DSP软件可编程锁相环控制器指南.pdf》资料免费下载
    发表于 12-24 16:54 0次下载
    TMS320<b class='flag-5'>C</b>6000 DSP软件<b class='flag-5'>可编程</b>锁相环<b class='flag-5'>控制器</b>指南

    PLC可编程控制器的简介

    PLC的英文全称为Programmable Logic Controller,也就是可编程序控制器。它是一种将计算机威廉希尔官方网站 与继电器威廉希尔官方网站 结合起来的现代化自动控制装置,1969年,美国数字化设备公司研制出
    的头像 发表于 12-23 09:09 83次阅读

    可编程逻辑控制器——安全威胁和解决方案

    电子发烧友网站提供《可编程逻辑控制器——安全威胁和解决方案.pdf》资料免费下载
    发表于 09-14 09:57 0次下载
    <b class='flag-5'>可编程</b>逻辑<b class='flag-5'>控制器</b>——安全威胁和解决方案

    可编程逻辑控制器的特点与用途

    随着工业自动化威廉希尔官方网站 的不断发展,可编程逻辑控制器(PLC)作为其核心控制设备,发挥着至关重要的作用。PLC以其独特的优势,如可编程性、高可靠性、强大的计算能力、灵活的通信接口和可扩展性等
    的头像 发表于 06-19 14:16 743次阅读

    替换SiTime,汽车摄像头可使用国产可编程振荡

    替换SiTime,汽车摄像头可使用国产可编程振荡
    的头像 发表于 06-18 09:34 273次阅读
    替换SiTime,汽车摄像头<b class='flag-5'>可使</b>用国产<b class='flag-5'>可编程</b>振荡

    PLC编程语言C语言的区别

    在工业自动化和计算机编程领域中,PLC(可编程逻辑控制器编程语言C
    的头像 发表于 06-14 17:11 2816次阅读

    可编程电源如何编程

    可编程电源如何编程  可编程电源是一种可以调节输出电压和电流的电源设备,广泛应用于电子设备测试、研发和生产等领域。通过编程,用户可以根据需要设置电源的输出参数,实现自动化测试和
    的头像 发表于 06-10 15:24 1327次阅读

    可编程逻辑控制器和微控制器的区别

    在电子威廉希尔官方网站 和工业自动化领域中,可编程逻辑控制器(PLC)和微控制器(MCU)是两种常用的控制设备。尽管它们都扮演着在系统中接收指令并控制其他
    的头像 发表于 06-03 14:52 900次阅读

    联网络IO控制器接入智云控演示

    的网络IO控制器(云版本)支持接入智云,实现设备的远程
    的头像 发表于 05-30 09:26 522次阅读
    智<b class='flag-5'>嵌</b><b class='flag-5'>物</b>联网络<b class='flag-5'>IO</b><b class='flag-5'>控制器</b>接入智<b class='flag-5'>嵌</b>云控演示

    PLC(可编程逻辑控制器)的升级方式有哪些呢?

    PLC(可编程逻辑控制器)的升级通常包括硬件升级和软件升级两个方面。
    的头像 发表于 05-27 11:26 780次阅读

    可编程序控制器系统概述

    AB可编程序控制器系统
    发表于 05-23 14:26 8次下载

    PLC(可编程逻辑控制器)利用Modbus通讯可以完成哪些任务呢?

    PLC(可编程逻辑控制器)利用Modbus通讯可以完成多种任务,以下是其中的一些主要应用
    的头像 发表于 04-11 15:41 623次阅读

    极海APM32F407可编程逻辑控制器PLC应用概述

    PLC(可编程逻辑控制器)作为可控制、执行和监控自动化机器设备的数字运算操作电子系统
    的头像 发表于 03-05 18:11 1287次阅读
    极海APM32F407<b class='flag-5'>可编程</b>逻辑<b class='flag-5'>控制器</b>PLC应用概述

    可编程控制器原理及应用 可编程控制器常用的编程语言

    可编程控制器(Programmable Logic Controller,PLC)是一种专门的数字计算机,用于自动化生产过程中的控制和监测。 PLC的原理可以简单概括为输入-处理-输出的过程。它接收
    的头像 发表于 02-03 16:46 1125次阅读

    可编程控制器的组成 可编程控制器有哪些特点?

    可编程控制器(Programmable Logic Controller,PLC)是一种使用数字计算机威廉希尔官方网站 和专用外设实现工业过程自动化控制的设备。它在工业生产中起到了非常重要的作用。本文将详细介绍
    的头像 发表于 01-18 11:18 1515次阅读