HCQ1-1300-D【高速输入】

因为我的PLC固件比较旧。所以有些限制。【比如:编译不报错,下载PLC程序就报故障】我的PLC的高速输入类型只能是【hsi_ref】
所以,程序添加的高速输入模块只能是【1.0.1.0】版本

 如果固件版本低,看下固件能支持的类型。选错的话,是下载不进去的。

驱动库版本也需要降版本。使目标类型一致。【hsi_ref】

1高速计数器:

                        用于记录电机轴位置【编码器信号采集】

或者:

程序最好放在ecat线程内。提高读取实时性。

2硬件引脚

总共4个引脚:【A】 ab接编码器信号,或者接近开关信号(需要设置计数器工作模式)
【B】 由计数器模式决定
【Z】就是编码器Z相,转一圈输出1个脉冲。【用于刷新重载值】
【锁存】外部接线端子触发,用于将计数器的值,记录到锁存变量。(用于记录电机位置)

A】【B】 用于计数

//【2】计数总开关
bCounterEnable:= 1 , //【BOOL】计数器功能使能位,高电平有效 wCountMode:= 2#0011,//【模式3】	//【WORD】计数模式与计数极性设置, bit[3] : 计数极性配置 ,bit[2:0] : 计数模式配置 //[0]AB脉冲1倍速【A高电平时:B上升沿加,B下降沿减】//[1]AB脉冲2倍速//[2]AB脉冲4倍速//[3]【B脉冲加,A脉冲减】// 1相位2输入脚【上升沿】//[4]B脉冲,【引脚A低加高减】// 1相位1硬件模式输入脚【B负责脉冲,A负责加减方向】//[5]B脉冲,【bSoftDirection标志位,低加高减】// 1相位1软件模式输入脚bSoftDirection:=  , 		//【BOOL】计数模式[5]时有效,低加高减diCntMinValue:= 0, 		//【DINT】 【当前计数值最小值 】
diCntMaxValue:= 10000, 		//【DINT】 【当前计数值最大值 】

Z】用于复位计数,把重载值更新到【当前计数值】

//【Z】引脚选择
BZport_sel:= 6, 			//【BYTE】  Z相端子选择 // 0 : X0将被选择作为Z相端子// 1 : X1将被选择作为Z相端子// ........// 15 : X15将被选择作为Z相端子
// 软触发开关
bSoftPreTrg:= , 	//【BOOL】计数【重载值触发】  当该位由0->1时,diSoftPreValue将被写入到diCurCountValue// 引脚配置
wHardTrgMethod:=2#010010 , 		//【WORD】硬件触发端子,bit[6:4]: Latch【锁存端子】检查设置 ,bit[2:0]: 【Z相端子】检查设置// [0]边沿检测失能// [1]上升沿触发有效 【0001】// [2]下降沿触发有效 【0010】// [3]升降沿触发有效 // 重载值
diSoftPreValue:=1000 , 		//【DINT】计数【重载值】 ,当前计数预置值,Z相或【bSoftPreTrg】预置触发后, 该数值将被写入diCurCountValue // 注:关闭【Z】脚的方法是,wHardTrgMethod:=[0]边沿检测失能

锁存脚】用于记录当前的计数值

                      跟体育教练的秒表一样,用于记录

//  锁存使能
bLatchEnable:=1 , 	//【BOOL】锁存开关,高电平有效,硬件脚触发,标记计数位置// 引脚设置
Blatch_sel:= 7, 			//【BYTE】 锁存端子选择 // 0 : X0将被选择作为【锁存】端子// 1 : X1将被选择作为【锁存】端子// ........// 15 : X15将被选择作为【锁存】端子	// 16为其他端子//  引脚配置
wHardTrgMethod:=2#010010 , 		//【WORD】硬件触发端子,bit[6:4]: Latch【锁存端子】检查设置,bit[2:0]: 【Z相端子】检查设置// [0]边沿检测失能// [1]上升沿触发有效 【0001】// [2]下降沿触发有效 【0010】// [3]升降沿触发有效 

3高速计数器对象


// QQ750273008	// 禾川Q---高速计数器
// 硬件引脚:【A】【B】【Z】【锁存】  // Falling下降沿
// 功能:【比较】【脉冲密度】【锁存】【重载】  //[Z]引脚用于重载值刷新
// 输出:【密度值】【当前计数值】【锁存值】【计数器状态字】
hsi_cnt(wDriveID:= 0, 		//【WORD】通道0~7,hsi_cnt到【hsi_cnt_7】bCounterEnable:= 1 , //【BOOL】计数器功能使能位,高电平有效 bEventEnable:=0 , 	//【BOOL】比较事件触发使能位,高电平有效 【产品打包计数】bDspdEnable:=1 , 	//【BOOL】脉冲密度使能位,高电平有效,,,脉冲密度测量,单位时间设置【单位ms】  bLatchEnable:=1 , 	//【BOOL】锁存开关,高电平有效,硬件脚触发,标记计数位置wCountMode:= 2#0011,//【模式3】	//【WORD】计数模式与计数极性设置, bit[3] : 计数极性配置 ,bit[2:0] : 计数模式配置 //[0]AB脉冲1倍速【A高电平时:B上升沿加,B下降沿减】//[1]AB脉冲2倍速//[2]AB脉冲4倍速//[3]【B脉冲加,A脉冲减	】	// 1相位2输入脚【上升沿】//[4]B脉冲,【引脚A低加高减】	// 1相位1硬件模式输入脚【B负责脉冲,A负责加减方向】//[5]B脉冲,【bSoftDirection】低加高减    // 1相位1软件模式输入脚bSoftDirection:=  , 		//【BOOL】计数模式[5]时有效,低加高减bSoftPreTrg:= , 	//【BOOL】计数【重载值触发】  当该位由0->1时,diSoftPreValue将被写入到diCurCountValuediEventCmpValue:=  , 		//【DINT】比较值【比较计数值】,diEventCmpValue==diCurCountValue时, 将触发计数器比较一致事件wHardTrgMethod:=2#010010 , 		//【WORD】硬件触发端子,bit[6:4]: Latch【锁存端子】检查设置 ,bit[2:0]: 【Z相端子】检查设置// [0]边沿检测失能// [1]上升沿触发有效// [2]下降沿触发有效 【010】// [3]升降沿触发有效 wCmpoutCtrlword:= , 	//【WORD】 // 预留,v103版本支持 wMeasureUnitTime:=1000 , 	//【WORD】脉冲密度测量,单位时间设置【单位ms】  // 单位时间内,获取脉冲数量wStatus_clr:=   , 		//【WORD】状态位清除字// bit0 预留// bit1 预留 // bit2 锁存完成标记清除 // bit3 硬件预置数触发完成标记清除 // bit4 软件预置数触发完成标记清除 // bit5 计数器下溢标记清除 // bit6 计数器上溢标记清除// bit7 预留// bit8 比较中断触发标记清除 // bit9 脉冲密度测量完成标记清除 // //【编码器圈脉冲】diSoftPreValue:=1000 , 		//【DINT】计数【重载值】 ,当前计数预置值,Z相或【bSoftPreTrg】预置触发后, 该数值将被写入diCurCountValue diCntMinValue:= 0, 		//【DINT】 【当前计数值最小值 】diCntMaxValue:= 10000, 		//【DINT】 【当前计数值最大值 】bTabCmpEnable:= , 		//【BOOL】wStartNum:= , 			//【WORD】wEndNum:= , 			//【WORD】BZport_sel:= 6, 			//【BYTE】  Z相端子选择 // 0 : X0将被选择作为Z相端子// 1 : X1将被选择作为Z相端子// ........// 15 : X15将被选择作为Z相端子Blatch_sel:= 7, 			//【BYTE】 锁存端子选择 // 0 : X0将被选择作为【锁存】端子// 1 : X1将被选择作为【锁存】端子// ........// 15 : X15将被选择作为【锁存】端子	// 16为其他端子//========================================diDspdFreqValue=> GVL.C1脉冲密度, 		//【DINT】	脉冲密度测量值 diCurCountValue=>GVL.C2当前计数值 , 		//【DINT】	当前计数值diLatchData=> GVL.C3锁存值, 			//【DINT】  锁存值 wCounterStatus=> GVL.C4计数器状态字);		//【WORD】	计数器状态字 //bit0: 计数器工作状态 //bit1: 预留//bit2: 锁存完成标记//bit3: 硬件预置数触发完成 //bit4: 软件预置数触发完成 //bit5: 计数器下溢标记 //bit6: 计数器上溢标记 //bit7: 当前计数方向 //bit8: 比较中断触发标记 //bit9: 脉冲密度测量完成标记 ////SMC_FreeEncoder.diEncoderPosition:=hsi_cnt.diCurCountValue;			//编码器位置							//SMC_FreeEncoder.diEncoderPosition:=GVL.电位器1;

4脉冲密度:

                单位时间内,接收到的脉冲数。

bDspdEnable:=1 , 	   //【BOOL】脉冲密度使能位,高电平有效,,,脉冲密度测量,单位时间设置【单位ms】  wMeasureUnitTime:=1000 , 	//【WORD】脉冲密度测量,单位时间设置【单位ms】// 单位时间内,获取脉冲数量

5比较事件:

                        用于满足条件的计数【跟闹钟一样】

bEventEnable:=0 , 	//【BOOL】比较事件触发使能位,高电平有效 【产品打包计数】diEventCmpValue:=  , //【DINT】比较值【比较计数值】,diEventCmpValue==diCurCountValue时, 将触发计数器比较一致事件
// 【7】 状态字	wStatus_clr:=   , 		//【WORD】状态位清除字// bit0 预留// bit1 预留 // bit2 锁存完成标记清除 // bit3 硬件预置数触发完成标记清除 // bit4 软件预置数触发完成标记清除 // bit5 计数器下溢标记清除 // bit6 计数器上溢标记清除// bit7 预留// bit8 比较中断触发标记清除 // bit9 脉冲密度测量完成标记清除 // wCounterStatus=>  	  C4计数器状态字);		//【WORD】	计数器状态字 //bit0: 计数器工作状态 //bit1: 预留//bit2: 锁存完成标记//bit3: 硬件预置数触发完成 //bit4: 软件预置数触发完成 //bit5: 计数器下溢标记 //bit6: 计数器上溢标记 //bit7: 当前计数方向 //bit8: 比较中断触发标记 //bit9: 脉冲密度测量完成标记 ////

6对象:【推荐用这个


// QQ750273008	// 禾川Q---高速计数器
// 硬件引脚:【A】【B】【Z】【锁存】  // Falling下降沿
// 功能:【比较】【脉冲密度】【锁存】【重载】  //[Z]引脚用于重载值刷新
// 输出:【密度值】【当前计数值】【锁存值】【计数器状态字】
hsi_cnt(
//【1】通道wDriveID:= 0, 		//【WORD】通道0~7,hsi_cnt到【hsi_cnt_7】//【2】计数总开关bCounterEnable:= 1 , //【BOOL】计数器功能使能位,高电平有效 diCntMinValue:= 0, 		//【DINT】 【当前计数值最小值 】diCntMaxValue:= 10000, 		//【DINT】 【当前计数值最大值 】// 计数模式wCountMode:= 2#0011,//【模式3】	//【WORD】计数模式与计数极性设置, bit[3] : 计数极性配置 ,bit[2:0] : 计数模式配置 //[0]AB脉冲1倍速【A高电平时:B上升沿加,B下降沿减】//[1]AB脉冲2倍速//[2]AB脉冲4倍速//[3]【B脉冲加,A脉冲减	】	// 1相位2输入脚【上升沿】//[4]B脉冲,【引脚A低加高减】	// 1相位1硬件模式输入脚【B负责脉冲,A负责加减方向】//[5]B脉冲,【bSoftDirection】低加高减    // 1相位1软件模式输入脚bSoftDirection:=  , 		//【BOOL】计数模式[5]时有效,低加高减//【3】比较值事件	bEventEnable:=0 , 	//【BOOL】比较事件触发使能位,高电平有效 【产品打包计数】diEventCmpValue:=  , 		//【DINT】比较值【比较计数值】,diEventCmpValue==diCurCountValue时, 将触发计数器比较一致事件//【4】脉冲密度bDspdEnable:=1 , 	//【BOOL】脉冲密度使能位,高电平有效,,,脉冲密度测量,单位时间设置【单位ms】  wMeasureUnitTime:=1000 , 	//【WORD】脉冲密度测量,单位时间设置【单位ms】  // 单位时间内,获取脉冲数量//【5】锁存引脚	【和】Z脉冲脚bLatchEnable:=1 , 	//【BOOL】锁存开关,高电平有效,硬件脚触发,标记计数位置wHardTrgMethod:=2#010010 , 		//【WORD】硬件触发端子,bit[6:4]: Latch【锁存端子】检查设置 ,bit[2:0]: 【Z相端子】检查设置// [0]边沿检测失能// [1]上升沿触发有效 【0001】// [2]下降沿触发有效 【0010】// [3]升降沿触发有效 //【注:】Z脉冲用于刷新重载值bSoftPreTrg:= , 	//【BOOL】触发【重载】  当该位由0->1时,diSoftPreValue将被写入到diCurCountValue//【重载值】:填编码器圈脉冲diSoftPreValue:=1000 , 		//【DINT】计数【重载值】 ,当前计数预置值,Z相或【bSoftPreTrg】预置触发后, 该数值将被写入diCurCountValue BZport_sel:= 6, 			//【BYTE】  Z相端子选择 // 0 : X0将被选择作为Z相端子// 1 : X1将被选择作为Z相端子// ........// 15 : X15将被选择作为Z相端子Blatch_sel:= 7, 			//【BYTE】 锁存端子选择 // 0 : X0将被选择作为【锁存】端子// 1 : X1将被选择作为【锁存】端子// ........// 15 : X15将被选择作为【锁存】端子	// 16为其他端子//【6】备用	wCmpoutCtrlword:= , 	//【WORD】 // 预留,v103版本支持 
// 【7】 状态字	wStatus_clr:=   , 		//【WORD】状态位清除字// bit0 预留// bit1 预留 // bit2 锁存完成标记清除 // bit3 硬件预置数触发完成标记清除 // bit4 软件预置数触发完成标记清除 // bit5 计数器下溢标记清除 // bit6 计数器上溢标记清除// bit7 预留// bit8 比较中断触发标记清除 // bit9 脉冲密度测量完成标记清除 // bTabCmpEnable:= , 		//【BOOL】wStartNum:= , 			//【WORD】wEndNum:= , 			//【WORD】//========================================
// 	C1脉冲密度:DINT;
// 	C2当前计数值:DINT;
// 	C3锁存值:DINT;
// 	C4计数器状态字:WORD;diDspdFreqValue=>     C1脉冲密度, 			//【DINT】	脉冲密度测量值 diCurCountValue=>     C2当前计数值 , 		//【DINT】	当前计数值diLatchData=>  		  C3锁存值, 			//【DINT】  锁存值 wCounterStatus=>  	  C4计数器状态字);		//【WORD】	计数器状态字 //bit0: 计数器工作状态 //bit1: 预留//bit2: 锁存完成标记//bit3: 硬件预置数触发完成 //bit4: 软件预置数触发完成 //bit5: 计数器下溢标记 //bit6: 计数器上溢标记 //bit7: 当前计数方向 //bit8: 比较中断触发标记 //bit9: 脉冲密度测量完成标记 ////SMC_FreeEncoder.diEncoderPosition:=hsi_cnt.diCurCountValue;			//编码器位置							//SMC_FreeEncoder.diEncoderPosition:=GVL.电位器1;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/93376.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

串口数据包收发

数据包 把属于同一批的数据进行打包和分割,方便接收方进行识别 HEX数据包 思路:一个数据规定四个字节,以0xFF为包头,0xFE为包尾,当检测到0xFF时,接下来四个数据就是数据,接收到0xFE时&#x…

FFMPEG 视频类过滤器学习整理

addroi 作用 在视频帧上标记一块感兴趣的区域。 帧数据被原封不动地传递,但元数据被附加到帧,指示可能影响后续编码行为的感兴趣区域。可以通过多次应用过滤器来标记多个区域。 参数 qoffset: 应用在此区域的量化偏移。 参数范围:-1 ~ …

【JVM】第五篇 垃圾收集器G1和ZGC详解

导航 一. G1垃圾收集算法详解1. 大对象Humongous说明2. G1收集器执行一次GC运行的过程步骤3. G1垃圾收集分类4. G1垃圾收集器参数设置5. G1垃圾收集器的优化建议6. 适合使用G1垃圾收集器的场景?二. ZGC垃圾收集器详解1. NUMA与UMA2. 颜色指针3. ZGC的运作过程4. ZGC垃圾收集器…

开发中的前端和后端

一、引言 前端和后端是Web开发中两个不同的领域。 前端开发主要负责实现用户界面的设计和功能,包括网页的布局、样式和交互效果。前端开发使用HTML、CSS和JavaScript等技术来构建用户在浏览器中直接与之交互的界面。前端开发人员需要关注网页的可视化效果和用户体验…

【软件测试】自动化测试selenium(一)

文章目录 一. 什么是自动化测试二. Selenium的介绍1. Selenium是什么2. Selenium的特点3. Selenium的工作原理4. SeleniumJava的环境搭建 一. 什么是自动化测试 自动化测试是指使用软件工具或脚本来执行测试任务的过程,以替代人工进行重复性、繁琐或耗时的测试活动…

排序算法之【希尔排序】

📙作者简介: 清水加冰,目前大二在读,正在学习C/C、Python、操作系统、数据库等。 📘相关专栏:C语言初阶、C语言进阶、C语言刷题训练营、数据结构刷题训练营、有感兴趣的可以看一看。 欢迎点赞 &#x1f44d…

[管理与领导-112]:IT人看清职场中的隐性规则 - 9 - 付出与回报的关系:先付出,后回报,不行就止损,这才是职场价值交换的本质

目录 一、职场中付出与回报的先后关系 二、付出与回报四象限模型 三、职场专业性的本质 一、职场中付出与回报的先后关系 在职场中,个人的付出和回报之间存在着先后关系。以下是按照先后关系划分的四种类型: 先付出后回报型,不回报&#…

【数据结构和算法】--N叉树中,返回某些目标节点到根节点的所有路径

目录 一、前言二、具体实现及拓展2.1、递归-目标节点到根节点的路径数据2.2、list转换为tree结构2.3、tree转换为list结构 一、前言 这么多年工作经历中,“数据结构和算法”真的是超重要,工作中很多业务都能抽象成某种数据结构问题。下面是项目中遇到的…

华为云云耀云服务器L实例评测|云耀云服务器L实例部署Gogs服务器

华为云云耀云服务器L实例评测|云耀云服务器L实例部署Gogs服务器 一、云耀云服务器L实例介绍1.1 云耀云服务器L实例简介1.2 云耀云服务器L实例特点 二、Gogs介绍2.1 Gogs简介2.2 Gogs特点 三、本次实践介绍3.1 本次实践简介3.2 本次环境规划 四、远程登录华为云云耀云…

基于Java的无人仓库自动补货管理平台设计与实现(源码+lw+部署文档+讲解等)

文章目录 前言具体实现截图论文参考详细视频演示为什么选择我自己的网站自己的小程序(小蔡coding)有保障的售后福利 代码参考源码获取 前言 💗博主介绍:✌全网粉丝10W,CSDN特邀作者、博客专家、CSDN新星计划导师、全栈领域优质创作…

【DRAM存储器九】SDRAM介绍-read、write、Precharge、DQM、Power down、Clock Suspend命令

👉个人主页:highman110 👉作者简介:一名硬件工程师,持续学习,不断记录,保持思考,输出干货内容 参考资料:《镁光SDRAM数据手册》、《PC SDRAM specification》 目录…

[Linux] 5.Linux虚拟机和Windows文件共享

一、拖拽 如果安装了VMware Tool可以从Windows直接拖进Linux中共享文件,通过拖拽的方式可以把文件从Linux 传输到Windows 二、 文件共享 需要安装VMware Tool点击添加,选择Windows文件的路径,名称作为Linux访问的路径 cd什么都不加&#xff…

<C++> STL_bitset使用和模拟实现

bitset的介绍 位图的引入 给40亿个不重复的无符号整数,没排过序。给一个无符号整数,如何快速判断一个数是否在这40亿个数中? 要判断一个数是否在某一堆数中,我们可能会想到如下方法: 将这一堆数进行排序&#xff0…

【python海洋专题九】Cartopy画地形等深线图

【python海洋专题九】Cartopy画地形等深线图 水深图基础差不多了,可以换成温度、盐度等 本期加上等深线 本期内容 1:地形等深线 cf ax.contour(lon, lat, ele[:, :], levelsnp.linspace(-9000,-100,10),colorsgray, linestyles-,linewidths0.25, t…

用python表格初级尝试

Excel,我的野心 当我输入3,2 就表示在第3行第2列。的单元格输入数据input输入表头 (input内除了/,空格 回车 标点符号等 全部作为单元格分隔符)由我设置input输入的是行or列 给选项 1. 行 2. 列默认回车或没输入值是列由我设置起…

数据结构 B树 B+树 B*树 特性与规则说明 图解

文章目录 前言B树基本规则B树的数据插入(文字描述图解)B树数据查找B树效率分析B树的作用B树基本规则B树 与 B树对比B*树基本规则B*树 与 B树对比拓展 前言 B树基本规则 每个节点最多有m个子节点,其中m是一个正整数。根节点除外,其…

聊聊并发编程——线程池

目录 Java线程池 处理流程 线程池主要参数 常见的拒绝策略 execute和submit区别 关闭线程池 常见的线程池 newSingleThreadExecutor newFixedThreadPool newCachedThreadPool newScheduledThreadPool 线程池的状态 Java线程池 运用场景最多的并发框架,…

阿里巴巴K8S集成seata

正文 在K8S集成seata,官方配置 代码 apiVersion: v1 kind: Service metadata:name: seata-servernamespace: wmz-devlabels:k8s-app: seata-server spec:type: NodePortports:- port: 8091nodePort: 30091protocol: TCPname: httpselector:k8s-app: seata-server-…

Java练习题-键盘录入字符串实现大小写转换

✅作者简介:CSDN内容合伙人、阿里云专家博主、51CTO专家博主、新星计划第三季python赛道Top1🏆 📃个人主页:hacker707的csdn博客 🔥系列专栏:Java练习题 💬个人格言:不断的翻越一座又…

idea清空缓存类

解决办法 网上有很多是让你去清空什么maven依赖,但假如这个项目是你不可以大刀阔斧的话 可以清空idea缓存 选择 Invalidate 开头的 然后全选 运行重启idea OK