hcq0-1100-d【禾川PLC】

2024-02-10 16:20
文章标签 plc 1100 hcq0 禾川

本文主要是介绍hcq0-1100-d【禾川PLC】,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

使用文档:   控制器: Q系列应用教程 

型号说明:【HCQ0-1100-D】【HCQ0-1200-D】

外观接口说明

Q0系列CPU模块说明书ATCIQ02232.pdf【port_1】:以太网
【port_2】:ECAT
【QBus  】: 右扩展io【rs485 】: COM_1#:【右侧长端子】(SW4左:接通电阻120Ω)COM_2#:【网口】(3GND,4a,5b)【不支持从站模式】COM_3#:【rs232】网口1.1  H【内部已并联120Ω】
网口1.2  L【can】
网口1.3  GND【屏蔽】
网口1.4  A2【内部已并联120Ω】
网口1.5  B2

千兆以太网口支持 Modbus TCP ;  选择》 简单模式

固件版本越新越好。
大于 1.04 【越好】 该版本支持web【网页可视化】

IPV4:192.168.88.100 子网掩码:255.255.255.0  

Q1系列有2个rj45网口:
网口1:IPV4:192.168.188.100 子网掩码:255.255.255.0 
网口2:IPV4:192.168.88.100 子网掩码:255.255.255.0闪烁(W): Update灯【闪烁4下】    '用于查看和PLC的连接'

 FN拨码:

【RUN闪烁】下:FN右拨一下,Update灯【闪4下】生效。再重新上电。SW向左 ←《  是ON

【RUN闪烁】下:FN右拨一下,Update灯【闪4下】生效。再重新上电。SW4:【左◀on】: A1 B1并联120Ω网口1.4  A2【内部已并联120Ω】
网口1.5  B2

  

TF卡位置:

sd0:TF卡
part0:U盘
程序总容量    16MBytes
I区(%)           128kBytes
Q区(%Q)          128kBytes
编程
M区 (%M)         512kBytes
掉电保持区       800kBytesCPU 16bit

编译

编译不报错,下载就报错:

固件版本问题导致的,需要降级【库函数】版本(占位符)
或者固件不支持的库/功能 也要删掉。如 web等

 

 固件版本:

                看名称后缀  1.04   需要注意有些函数库版本不能超过固件支持

有些函数版本,不能超过固件版本
cmpCodeMeter
ioStandard

 

 利用错误关键字,在库里找出这个是属于哪方面的,做降级参考。

 降级这2个库后,程序下载到PLC就不报错了。

CAN主站: 

 CAN轴【禾川】-CSDN博客

面板上【CAN灯】:【常亮】can网线没有接通。【闪烁】正常工作中。
HL【内部已并联120Ω】主站80h帧【必须】是Task周期的【1~2】倍。从站心跳消费周期是主站心跳的【1.5】倍。    '480ms,720ms'【POWER】启动条件:0x6041=0x0250【JOG】      条件:0x6041=0x0637;且 0x60ff不为0,且0x6061=3【可按stop切换到03】jog键【长按】【JOG】释放后,需要等待5秒【注】:复位节点是独立的,不受专家勾选影响。

 在can模块下,再添加can轴主站

 右键》扫描设备

添加can库

MC_POWER_CO  的条件是0x6041的值为0x0250; 【其他函数】0x6041的值为0x0627;

说明文档:  禾川Q系列CANOPEN应用教程V1.3-20210907.pdf库函数文件:  库函数HCFA_CANopenLib_0.0.0.4.compiled-library注意:库函数文件,官网上下载不了,只能人工服务,问客服索取。
库并不好用,类似寄存器绑定。

ECAT主站:

ECAT轴【调试笔记】_smc_followposition-CSDN博客

1修改ECAT网卡ip
2用扳手在线
3ECAT总线【右击,扫描从站】
4断开PLC
5驱动器下,添加402轴。

PLC命令:

?            打印可用命令的列表。
getcmdlist   在内部用于显示所有可用的命令。
mem<address>〔<size>〕    打印指定内存区域的Hexdump。
reflect                      只需回复输入的命令(用于测试连接)。
applist            打印当前加载的应用程序的列表。pid[<应用程序名称>|<应用程序索引>]       转储一个特定或所有加载的应用程序的Guid。
pinf[<应用程序名称>|<应用程序索引>]      转储一个特定或所有加载的应用程序的项目信息。
startprg[<app名称>|<app索引>]            启动一个特定或所有加载的应用程序。
stopprg[<应用程序名称>|<应用程序索引>]    停止一个特定或所有加载的应用程序。
resetprg[<应用程序名称>|<应用程序索引>]   重置一个特定或所有加载的应用程序。
resetprgcold[<应用程序名称>|<应用程序索引>]    对一个特定或所有加载的应用程序执行冷重置。reload[<应用程序名称>|<应用程序索引>]    从启动项目重新加载一个特定或所有加载的应用程序。getprgprop[尚未实施]
getprgstat[<app名称>|<app索引>]    获取一个特定或所有加载的应用程序的状态。plcload                            获取PLC任务的处理器负载。
rtsinfo                            打印运行时系统信息,如处理器和运行时版本。
channelinfo                        返回通信信道信息。
rtc-get                            通过DateTime字符串获取UTC。
rtc-set                            通过DateTime字符串设置UTC(请参阅ISO 8601)。所需格式:“rtc-set YYYY-MM-DDThh:mm:ss[,sss]”showsecuritysettings    显示所有安全设置和当前配置的列表。
cert-getapplist        显示所有已注册的应用证书(组件ID和应用程序)
cert genselfsigned[<number retrieved by "cert-getapplist"> <expdays=>]生成所有自签名证书
cert-gendhparams [len in bits]    生成Diffie-Hellman密钥交换所需的参数。注意力可能会持续几分钟!cert getcertlist[<trustlevel>]        获取所有证书的列表
cert-createcsr [<number retrieved by "cert-getapplist">]    为所有应用程序创建CSR文件
证书导入<信任级别><文件名>
导入证书cert导出<trustlevel>〔<“cert-getcertlist”检索的数字>〕
导出证书
cert-remove<trustlevel><通过“cert-getcertlist”或“all”检索的数字>
删除证书
plc程序导出
将目标plc程序导出到usb设备。
delpasswd
删除用户密码。
saveretains[<applicationname>]
保存保留到个文件。[仅在指定的应用程序中可选]。
restoreretains[<applicationname>]
从文件还原保留。[仅对指定的应用程序可选]。

软件授权:

编程

变量:

PROGRAM CANopen样例
VAR//Axis1: AXIS_REF_CO  ; // 新建局部变量MC_Power_CO			:MC_Power_CO;MC_Home_CO			:MC_Home_CO;MC_Reset_CO			:MC_Reset_CO;MC_Stop_CO			:MC_Stop_CO;MC_MoveVelocity_CO	:MC_MoveVelocity_CO;MC_MoveAbsolute_CO	:MC_MoveAbsolute_CO;MC_MoveAbsolute1_CO	:MC_MoveAbsolute_CO;MC_MoveRelative_CO	:MC_MoveRelative_CO;MC_MoveRelative1_CO	:MC_MoveRelative_CO;MC_Jog_CO			:MC_Jog_CO;b伺服通信状态		:BOOL;e轴运行状态			:SMC_AXIS_STATE;e轴故障代码			:MC_ERROR_CO;f轴当前位置			:LREAL;f轴当前速度			:lREAL;f轴当前转矩			:REAL;num :UINT;h0:uint;h6:UINT;h7:UINT;hF:uint;
END_VAR

程序:

//GVL.Axis1.pDevice
gvl.Axis1.pDevice				:=ADR(DMA882_CAN);		//---指定对应的CANOPEN设备,必须赋值
// GVL.Axis1                  :=     Axis1 ;    
gvl.Axis1.fEncoderFactor		:=10000;			//---给定齿轮比,齿轮比=(电机一圈指令数÷电机转动一圈对应应用单元)
// 修改0x6041默认值0x0250
IF gvl.h6041 = 16#0200 THENgvl.Axis1.In.wStatusWord := 16#250;ELSEgvl.Axis1.In.wStatusWord := gvl.h6041;
END_IF
// 使能电机
mc_power_co.bRegulatorOn:=1;
mc_power_co.bEnable:=1;
// 刷新任务A00_功能块调用();num:=num+1;//gvl.h6041:=num;
// 显示结果	
b伺服通信状态			:=gvl.Axis1.bCommunication;		//---读取从站通信状态
e轴运行状态				:=gvl.Axis1.nAxisState;			//---读取轴运行状态
e轴故障代码				:=gvl.Axis1.eErrorID[0];		//---读取当前的轴故障代码
f轴当前位置				:=gvl.Axis1.fActPosition;		//---读取伺服反馈位置
f轴当前速度				:=gvl.Axis1.fActVelocity;		//---读取伺服反馈速度
f轴当前转矩				:=gvl.Axis1.fActTorque;			//---读取伺服反馈转矩IF	gvl.Axis1.Out.wControlWord = 0 THENh0:=gvl.Axis1.In.wStatusWord;
END_IF
IF	gvl.Axis1.Out.wControlWord = 6 THENh6:=gvl.Axis1.In.wStatusWord;
END_IF
IF	gvl.Axis1.Out.wControlWord = 7 THENh7:=gvl.Axis1.In.wStatusWord;
END_IF
IF	gvl.Axis1.Out.wControlWord = 16#F THENhf:=gvl.Axis1.In.wStatusWord;
END_IF

是oop对象。可以循环对轴操作。 

程序移植

变量:

PROGRAM CANopen样例
VAR//Axis1: AXIS_REF_CO  ; // 新建局部变量MC_Power_CO			:MC_Power_CO;MC_Home_CO			:MC_Home_CO;MC_Reset_CO			:MC_Reset_CO;MC_Stop_CO			:MC_Stop_CO;MC_MoveVelocity_CO	:MC_MoveVelocity_CO;MC_MoveAbsolute_CO	:MC_MoveAbsolute_CO;MC_MoveRelative_CO	:MC_MoveRelative_CO;MC_Jog_CO			:MC_Jog_CO;b伺服通信状态		:BOOL;e轴运行状态			:SMC_AXIS_STATE;e轴故障代码			:MC_ERROR_CO;f轴当前位置			:LREAL;f轴当前速度			:lREAL;f轴当前转矩			:REAL;num :UINT;h0:uint;h6:UINT;h7:UINT;hF:uint;
END_VAR

程序:

//GVL.Axis1.pDevice
gvl.Axis1.pDevice				:=ADR(DMA882_CAN);		//---指定对应的CANOPEN设备,必须赋值
// GVL.Axis1                  :=     Axis1 ;    
gvl.Axis1.fEncoderFactor		:=10000;			//---给定齿轮比,齿轮比=(电机一圈指令数÷电机转动一圈对应应用单元)
// 修改0x6041默认值0x0250
IF gvl.h6041 = 16#0200 THENgvl.Axis1.In.wStatusWord := 16#250;ELSEgvl.Axis1.In.wStatusWord := gvl.h6041;
END_IF
// 使能电机
mc_power_co.bRegulatorOn:=1;
mc_power_co.bEnable:=1;
// 刷新任务A00_功能块调用();num:=num+1;//gvl.h6041:=num;
// 显示结果	
b伺服通信状态			:=gvl.Axis1.bCommunication;		//---读取从站通信状态
e轴运行状态				:=gvl.Axis1.nAxisState;			//---读取轴运行状态
e轴故障代码				:=gvl.Axis1.eErrorID[0];		//---读取当前的轴故障代码
f轴当前位置				:=gvl.Axis1.fActPosition;		//---读取伺服反馈位置
f轴当前速度				:=gvl.Axis1.fActVelocity;		//---读取伺服反馈速度
f轴当前转矩				:=gvl.Axis1.fActTorque;			//---读取伺服反馈转矩IF	gvl.Axis1.Out.wControlWord = 0 THENh0:=gvl.Axis1.In.wStatusWord;
END_IF
IF	gvl.Axis1.Out.wControlWord = 6 THENh6:=gvl.Axis1.In.wStatusWord;
END_IF
IF	gvl.Axis1.Out.wControlWord = 7 THENh7:=gvl.Axis1.In.wStatusWord;
END_IF
IF	gvl.Axis1.Out.wControlWord = 16#F THENhf:=gvl.Axis1.In.wStatusWord;
END_IF

修改ip:

控制器: Q系列 产品包文件

运行模式下》【修改ip】》【写参数】》【断电重启】如果ip修改不成功,
需要考虑设备库插件的问题,重新安装对应固件版本的库

 ip改好后【写参数】【断电重启PLC】

安装成功后

这篇关于hcq0-1100-d【禾川PLC】的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/697555

相关文章

C#编写上位机通过OPC DA读取西门子PLC数据

Sync_RW 引用:Quick.OpcComRcw 文档中原程序会报错: 原因:需要在安装有Simatic NET V14的电脑上运行这个程序。 需要注释掉下面程序,否则读取时会无故障提示退出。 //finally里的程序要注释掉,否则一点击read按钮,程序会直接无故障提示退出//finally//{// // Free the unmanaged memory/

PLC工业网关在钢铁企业生产过程中的应用-天拓四方

在当今工业自动化领域,PLC工业网关已经成为了提升生产效率、确保产品质量、增强系统可靠性的关键组件。本文旨在通过一个具体的工业应用实例,深入探讨PLC工业网关的功能、优势及其在现代工业环境中的重要作用,从而展示其在实际操作中的专业性和实用性。 在我国某大型钢铁企业,生产线上需要对钢材进行实时监测与控制。为了保证生产效率和产品质量,企业决定引入PLC工业网关来实现对生产过程的自动化控制。以

PLC边缘计算网关的选择策略-天拓四方

随着工业自动化和物联网技术的快速发展,PLC作为工业自动化的核心设备,其数据采集与处理能力日益受到重视。PLC边缘计算网关作为连接PLC与云端服务的桥梁,不仅承担着数据收集、传输和初步处理的角色,更是实现工业智能化升级的关键。本文将详细介绍PLC边缘计算网关的选择策略,帮助读者在实际应用中做出明智的决策。 一、明确需求与场景 在选择PLC边缘计算网关之前,首先需要明确自身的需求和应用场景。不同

搭建IPsec VPN隧道解决PLC设备与主控上位机无法使用公网IP进行通信的问题

问题描述 按照初设规定,每个工程点位都要安装一条具有独立公网IP的光纤专线,供该点位的视频监控设备、水质监测设备及PLC设备与外界进行通信。而在项目开发前期并没有意识到,组态软件(上位机)无法通过公网IP地址连接PLC,导致在交付后期PLC设备无法与主控进行通信。 后经过了解得知可以在控制室网络与各PLC所属网络之间搭建VPN隧道,使得两个网络之间可以像局域网那样相互访问。 VPN技术 V

如何确定电脑与PLC有没有链接上

直接Ping一下   第一步:win+R调出运行框 第二步:输入CMD-点确认    弹出运行框在里面输入Ping 192.168.10.1    失败状态  成功状态

<PLC><编码器>汇川Eazy521系列PLC与欧姆龙增量编码器E6HZ-CWZ6C连接及读取实例

前言 本系列是关于PLC相关的博文,包括PLC编程、PLC与上位机通讯、PLC与下位驱动、仪器仪表等通讯、PLC指令解析等相关内容。 PLC品牌包括但不限于西门子、三菱等国外品牌,汇川、信捷等国内品牌。 除了PLC为主要内容外,PLC相关元器件如触摸屏(HMI)、交换机等工控产品,如果有值得记录的内容,也会添加进来。 环境配置 系统:windows 软件:PLC编程软件(依品牌而定,如博图)

零基础学PLC的指令-沿指令(2)

扫描操作数的信号上升沿: 在触点分配的 "IN" 位上检测到正跳变(0->1)时,该触点的状态为 TRUE。该触点逻辑状态随后与能流输入状态组合以设置能流输出状态。P 触点可以放置在程序段中除分支结尾外的任何位置。 扫描操作数的信号下降沿: 在触点分配的 "IN" 位上检测到负跳变(1->0)时,该触点的状态为 TRUE。该触点逻辑状态随后与能流输入状态组合以设置能流输出状态。N 触点可

西门子一个PLC两个HMI分别显示不同报警内容

当前项目为一个PLC带两个HMI,功能上两个站完全分离,但是为了避免重复绘制HMI,先将两个站点报警链接到同一个HMI上,同时又需要指定站点的HMI单独显示该站点的报警;否则会出现如下情况,两个站都显示全部的报警信息。 解决步骤: 首先对报警进行分组 单独更改两个HMI的报警显示类别 报警视图同理,分别设置要显示的报警信息 分别设置完后重新下载,即可不同站的H

S7通信协议从入门到精通_1_Sharp7(C#)类编写西门子 S7系列 plc驱动程序(扩展C++语言)

文章目录 1. 什么是Sharp71.1 什么是Sharp71.2 下载文件中包含的内容1.3 使用示例 2. 如何使用Sharp7进行上位机开发2.1 S7-1200的配置2.2 创建示例项目2.3 连接到plc2.3 从DB读取2.4 写入DB2.5 示例代码 3. 扩展3.1 C++上位软件通过Snap7开源库访问西门子S7-1200/S7-1500数据块的方法 1. 什么