本文主要是介绍信捷PLC学习手册,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
软件安装
软件可在信捷官网下载,相关手册也在官网即可下载。
安装时退出电脑防护,以管理员身份运行XDPP即可,会自动安装另一个。
对应的HMI可以用FStudio
与PLC连接
通过以太网口连接
- 设置网口 PLC 的 IP 地址
- 设置电脑的 IP 地址
- XDPPro 通过网口连接 PLC
局域网口按 ID 查找
(手册4-1-3-2)
编程软件,选择【软件串口设置】,选择任意一个通讯口,进入配置界面;通讯接口选“Ethernet”;通讯协议选 XNET,连接方式选择“局域网口”,查找方式可以选“设备类型”或是“设备 ID”。两种方式都可以:
- 查找方式选“设备类型”,勾选相应类型,再点击“配置服务”—“重启服务”,点击确定即可完
成连接。 - 查找方式选“设备 ID”,填入网口 PLC 的 ID 号(PLC 的 ID 号可以查看 PLC 标签,也可以通过左侧菜单栏中的“PLC 本体信息”查看,本体信息查看 ID 号的前提是 PLC 与软件成功连接)
连接实例
接线:电脑跟PLC用网线连接,PLC与触摸屏用网线连接,电源红黑线给PLC和触摸屏分别供电。
网线直接连接电脑与触摸屏也可以下载触摸屏程序。
若PLC与触摸屏通过网线连接显示通讯失败,可以尝试通过VGA-COM的线进行连接,可能只设置了这种通讯。
电脑设置:修改本机以太网ipv4地址,win11通过控制面板修改,默认192.168.6.20,连接PLC正常可通过MODBUS_TCP连接成功。
若不成功,首先查看是否能ping通本机IP,失败说明修改IP失败。能通再ping PLC默认192.168.6.6。
连接成功后提示机型不匹配,切换机型。
问题处理
如果能下载不能运行,先设置扩展模块,不行的话重新上电试一下。
网络ip
用网线直接连接或通过HUB或交换机连接的计算机,当在同一网段时才能互通。(网络地址相同,主机地址不同)
计算网络地址=IP地址和子网掩码换算为二进制,进行与运算。
-
公网IP和私网IP
ipconfig查出来的是本机的内网私有地址,百度查出来的是上网的共有地址。 -
网关
网关是一个网络通往其他网络的IP地址。
网关就是路由。
缺省网关是默认网关的父类。 -
DNS服务器
即域名服务器,用来域名解析(域名对应IP) -
端口
包括物理端口和逻辑端口。
主机区分不同的网络服务靠的是“IP地址+端口号”的模式
0-1023是公认端口(常用端口),1025-49151是注册端口。
数据结构
c语言块中用W,B进行编写。
传参进来用D与M。
即D----W,B-----M
W与B按数组使用
双字DW【10】表示W【10】与W【11】
D0====FW【0】,为双字浮点数寄存器。
- SM【13】为一秒脉冲,0.5sON,0.5sOFF。
在信捷PLC中,有两种常见的计时器类型,分别是S定时器和T定时器。其中,S定时器是通电计时,断电不计时;而T定时器则是通电计时,断电后重新上电会继续计时。
扩展模块
连接扩展模块后要在编程软件中进行设置,上面的菜单栏-PLC设置-扩展模块设置,最常用的是第一种扩展模块。(XL-K-E6X)
连接的第一个扩展模块地址就是1000X,1000Y。
软元件
软元件概述
- 输入继电器X,接收开关信号,八进制
(按 X0到X7,X10到X17…八进制数的方式分配输入继电器地址号) - 输出继电器Y,驱动外部负载,八进制
- 辅助继电器M,HM,仅能在程序中使用,十进制
- 状态继电器S,HS,步进梯形图使用的继电器。也可作为信号报警器。
- 定时器T,HT
- 计数器C,HC
- 数据寄存器D,HD
变量标准化命名
- 开头用IOTKP,中间用英文名或拼音,最后用阿拉伯数字。
- eg. I_Stop_A(输入变量–停止–A通道)
- I是输入,O是输出,T是临时变量(中间变量),K是开关量,P是PWM量,TT是一次数据转换之后的变量,TTT是两次数据转换之后的变量。
程序实例
- “自动”的变量实例
if ( !X[8] && !X[9] && !HM[1] && !B[51] && !B[66] && !B[76] && !B[86] && B[95] ){if ( B[230] )//中途搅拌{B[231] = true;//中途搅拌自动}}
- 顺序执行的实例
使用LAST_M12,在运行一次后赋值。
if ( B[12] == 1 & Last_M12 == 0 ){FW[72] = FW[70];FW[74] = FW[12];}if ( B[95] && B[14] ){if ( B[13] == 1 & Last_M13 == 0 ){FW[76] = FW[70];FW[78] = FW[12];FW[44] = ( FW[74] - FW[78] ) * ( ( FHD[4] * FHD[10] + FHD[6] * FHD[12] ) / ( FW[14] * 100.0 ) ) / ( FW[76] - FW[72] ); //干胶量}}if ( FW[44] < 0 ){FW[44] = 0;}Last_M12 = B[12];Last_M13 = B[13];
- 高低电位持续时间
//液位传感器处理 X3_A桶_低液位 X4_A桶_低液位 X5 B桶_低液位 X6_B桶_低液位
//下面这段代码仅针对X3一个传感器if ( X[3] )//若低液位传感器处于高电平{FW[1004]++;//高电平持续累计if ( X[3] == 1 && Last_X3 == 0 )//如果X3信号为1且上一次的X3信号为0,表示液位传感器状态从低电平变为高电平,记录液位传感器状态由低到高的时间{FW[1026] = FW[1006];FW[1006] = 0;}}else{FW[1006]++;//低电平持续累计if ( X[3] == 0 && Last_X3 == 1 )//记录液位传感器状态由高到低的时间{FW[1024] = FW[1004];//FW1024是高电平累计时间,也就是由高到低的时间——兰FW[1004] = 0;}}Last_X3 = X[3];FW[1042] = ( FW[1026] / ( FW[1024] + FW[1026] ) ) * 100;//FW1042初值为0,第一次变高电平值变为1,再变低电平时值变为0.X,例如0.2。if ( FHD[150] < FW[1042] )//if ( FHD[150] < FW[1042] )+++JIA{HM[51] = 1;}else{HM[51] = 0;}
- #define DFD (INT32S)&D
&D:对符号D所代表的对象取地址
(INT32S*)&D:将这个地址强制转换为有符号32位整型指针指向的对象
(INT32S)&D:然后从这个指针取出所指向的有符号32位整型对象
简单来说,就是从D所在的地址依次取出4字节并按有符号32位整型解析。一个隐含的风险是在某些平台、某些编译环境下可能发生访问对齐错误。
库的建立
应用POU库可以实现功能块的封装,建立POU块。(选择FB函数块或FC函数)
可用梯形图或C语言进行编写,需要先建立变量,变量名不可使用中文。在梯形图中进行调用时可以直接输入POU块的名称,然后设置此处应用模块的名称。仍旧注意不能使用中文。
POU的变量输入要注意不能使用绝对地址,需要在全局变量表中设置变量映射。
全局变量表中映射地址是红色说明数据类型不对,可能是占用位数不对。M和D切换试试。
POU中定义变量要注意开关量用bit类型就好,BOOL类型占用的还是八位,所以在全局变量表中无法对应M地址。
函数块FB
FB中有自己的内部变量,FB中可以使用函数块和函数。
编程函数块
页面上方有局部变量区
FB 成员变量不允许使用 BIT 类型或 BIT 数组类型,可以使用 BIT 指针类型。BOOL类型与BIT类型在此处大多兼容
使用梯形图
有一些注意事项详见手册,例如常量有时候不用写K(当与自定义的变量在一起时)
块内不能使用TMR指令,只能使用TMR_FB
使用C语言
需要在每一个变量前加“self->”
实例化调用函数块
梯形图中调用
- 直接输入FB名称,弹框声明变量确定,输入相关信息后完成实例化调用。
- 或者先声明实例化变量,梯形图直接输入变量名称。
C语言中调用
C语言中调用有严格顺序,需要先写传入参数,再写调用函数体,再写输出参数。
函数FC
- 没有静态变量
- 参数传递必须严格保持类型一致
用C编程:
- Int等数量的数据类型,输入正常写即可,输出在变量前加星号
- Bit和BOOL的数据类型:
输入——加.Val
输出——加->Val
REAL即为浮点型
在C中调用如下:
这篇关于信捷PLC学习手册的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!