信捷PLC之C函数编程(一)
写PLC程序,越来越觉得结构化文本编程语言(ST)给PLC编程带来的便利,在处理一些数据上,可以写的更加灵活。所以,在项目PLC选型上,我都会优先选择支持结构化文本的PLC。
国内有些厂商推出了一些较为高端一些的PLC,开发环境集成在Codesys平台(例如禾川、信捷);也有的PLC的开发环境集成在Visual Studio平台中(例如倍福)。
像依赖于博图的西门子、三菱、欧姆龙PLC,都可以在独家的IDE中进行ST编程开发。
今天,我们来说一下ST语言编程的“另类”——信捷的C函数编程。
如果大家关注我的公众号文章,最近就会收到比较多的信捷C函数编程的推送,大家想要学习的话,记得关注微信公众号【工业技术互联】
下一篇讲解如何使用信捷PLC的C函数编程,本篇文章先说一下这种编程方式。
打开信捷PLC的编程软件“XDPPro”,就会看到在左侧目录树下,有“函数功能块”这一栏。
通过在上面单击右键,就可以添加功能块。
image01
第一个函数功能块的默认名字为“FUNC1”,如下图所示,可以自定义源文件名称、版本、描述、作者、日期。设定好源文件信息后,点击确认就可以创建文件。
image02
在此,我将函数功能块命名为“FUNC3”。打开创建好的文件,如下图所示。
Image03
但是使用过程中,就会存在一些问题。给我最大的不便之处在于它的不灵活性。
【第一点】文件长度问题
如图所示,我给文件取名为“FUNC3”,没问题,长度满足要求,但是如果你要给它取名为“ZIDONGSHANGLIAO”(自动上料),那不好意思,它不支持这么多长度的文件名命名,当输入到“ZIDONGSHA”时候,剩下的就输入不进去了。
【第二点】文件大小写问题及格式
文件名只能支持字母、数字、下划线,并且第一个字符不能是数字,很符合命名规范,但是它的字母只能是大写,无法输入小写。所以,当你想输入“ShouDong”(手动)时候,它会自动变成“SHOUDONG”,看起来总感觉不舒服。如果你用过西门子的FC和FB,就会发现,它的这些块是可以支持中文的。
好吧, 上面我都可以接受,不影响我在掉发的路上越走越远。
【第三点】函数传递的形参固定
如图三所示,void FUNC3(WORD W , BIT B )这里面的参数无法改变。比如你想将函数写成
void FUNC3(WORD W , WORD D)那不行,这是不允许的。像写成void FUNC3(BIT B , BIT D)这样的也不允许。因为根本不允许修改。
那是否可以在此函数中创建一个新的函数用来调用?实践表明,这样也是不行的。
反正就是有很多的局限性,用起来特别不灵活。
当然,也有好的一方面,如果你是要用来计算CRC校验,用这个函数就可以很好的实现。官方也有相关的例子,直接拿来使用即可。
如果你要把信捷的C函数编程当作ST编程来使用,有很多和你预想的不一样的地方。
比如赋值符号:
在ST中,将15传递给int类型的a,表达式可以为a :=15;
在信捷的C函数编程中,则是 a=15;
信捷的编程方式就是C语言。 而ST的编程方式不是C语言,是PASCAL。
下一节,介绍如何使用C函数进行编程开发信捷PLC
关注微信公众号【工业技术互联】还有技术交流群可以加入
信捷PLC之C函数编程(一)相关推荐
- 三菱modbusRTU通讯实例_「笔记」信捷plc应用,两个plc通讯篇
本文转自微信公众号:自动化电气工程师技术交流与分享 关键词:Modbus协议本文目标:以XC5系列为例,完成两个信捷PLC基于Modbus RTU协议的通讯. 本文目录 一,通讯前须知 二,参数设置 ...
- 信捷步进指令的使用_【笔记】信捷plc应用,指令篇
关键词:编程指令 本文目标:以XC5系列为例,了解信捷常用的应用.脉冲及特殊指令 本文目录 一,应用指令 二,脉冲指令使用注意事项 三,脉冲指令 四,特殊指令 正文开始 一,应用指令 1, [STL] ...
- 工业读写器对接信捷 PLC通信示例
1简介 FR系列阅读器是一种高稳定性的非接触式工业级读写设备.其工作频率为13.56MHz,支持Modbus通信协议,支持ISO/IEC 15693标准和ISO 18000-3M1标准,支持RS232 ...
- 信捷PLC 批量传送位 MOV DMOV QMOV
信捷PLC有没有类似三菱PLC那要的批量传送多位的指令呢,有的,如下图所示. MOV DX0 D0 传送X0~X17 共16个点到D0.0~D0.15 DMOV DX0 D10 传送X0~X37 ...
- 信捷pLC C语言错误格式,信捷PLC常见问题及解决方法经验分享
目前国产PLC以信捷为主,主要总结下信捷PLC常见问题及解决方法如下: 一.为什么PLC与外围设备无法通讯上? 通讯失败一般归纳为以下几个问题: 1. 通讯线:连接可能不正确,或接触不良,用户可更换通 ...
- 信捷服务器Z相信号,信捷plc标记与中断处理小知识
[信捷plc标记与中断处理小知识] 有关信捷plc的编程知识,在信捷plc中标记P.I用于分支与中断,标记I一般用于中断功能,包括外部中断.定时中断等场合,分支用的标记(P)用于条件跳转或子程序的跳转 ...
- 信捷plc的pid控制_基于信捷plc的pid参数自整定的温度控制
苏卫峰 摘要:本文介绍了一种基于临界振荡法的PID自整定方法,通过整定可得到较佳的PID参数.采用信捷XC系列本体的PID控制,采用开关量输出,利用PT100传感器采集到温度,通过信捷模拟量温度混合模 ...
- 信捷PLC的C语言程序写法例子
有些同学用信捷PLC的C函数功能块,不想受函数参数的约束,想随便用寄存器是数值来做计算.可以把需要参与计算的数据放在一个结构体里面,把结构体声明在头文件里面,然后结构体里面再嵌套结构体指针来指向另外的 ...
- 信捷PLC中Y0用C语言怎么表示,信捷PLC
信捷PLC 我们这边按住按钮,那边电机启动,这一切,是如何实现的呢?首先,我们来看实现这个功能的梯形图:零基础,十分钟入门PLC(可编程控制器),掌握它的工作原理这就是PLC中的梯形图.信捷PLC 用 ...
- 电脑连接信捷PLC方法
1. 以XC系列为例,需要专用的信捷PLC下载线 2. 打开PLC编程软件,把串口线连接PC和PLC.,并查看端口:我的电脑->设备管理->串口(端口),以端口5为例 3. 连接PLC:选 ...
最新文章
- linux dmesg命令参数及用法详解(linux显示开机信息命令)
- php预测,趋势预测法-PHP实现
- jquery ajax异步和同步从后天取值
- Aix iostat命令解析
- 深入理解Spark 2.1 Core (八):Standalone模式容错及HA的原理与源码分析
- 《移动App测试的22条军规》—App测试综合案例分析23.13节测试微信App的流量和电量消耗...
- 开发经常犯的错误之→【join表连接关联查询 】
- Android 应用开发(9)---内联复杂的XML资源
- 基于HTML5的WebGL结合Box2DJS物理应用 1
- 边缘计算应用场景_从6大应用场景,看边缘计算落地生根
- UGUI 在面板经常使用的表格布局制作
- 算法基本和常见排序算法
- Spring整合activityMq
- STC-ISP下载编程烧录软件绿色版(单片机必备)下载
- ImportError:cannot import name 'distribute_covar_matrix_to_match_covariance_type'
- 高端驱动和低端驱动--ir2110
- 3D人脸重建:《Joint 3D Face Reconstruction and Dense Alignment with Position Map Regression Network》
- hdu-6638 Snowy Smile
- android实现箭头流程列表_Android下拉列表选项框及指示箭头动画
- 虚幻4--UE4是什么?
热门文章
- K3wise数据字典及常用表及视图
- Nginx通过反向代理实现单端口访问多个服务
- 让Google chrome支持迅雷
- 我的世界服务器物品管理,JEI物品管理器 _ 我的世界Minecraft中国版官方网站——你想玩的,这里都有...
- Quartus波形仿真教程
- java jdk 64 1.8_JDK1.8 64位官方下载
- 解决 Hbuilder打包 Apk pad 无法横屏 以及 H5 直接打包 成Apk
- 使用dea-toolbox进行数据包络分析
- dreamweaver网页设计作业制作 学生个人网页单页 WEB静态网页作业模板 大学生个人主页博客网页代码 dw个人网页作业成品
- Rhino for Mac Essential Training Mac平台的Rhino基础教程 Lynda课程中文字幕