写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函数编程(一)相关推荐

  1. 三菱modbusRTU通讯实例_「笔记」信捷plc应用,两个plc通讯篇

    本文转自微信公众号:自动化电气工程师技术交流与分享 关键词:Modbus协议本文目标:以XC5系列为例,完成两个信捷PLC基于Modbus RTU协议的通讯. 本文目录 一,通讯前须知 二,参数设置 ...

  2. 信捷步进指令的使用_【笔记】信捷plc应用,指令篇

    关键词:编程指令 本文目标:以XC5系列为例,了解信捷常用的应用.脉冲及特殊指令 本文目录 一,应用指令 二,脉冲指令使用注意事项 三,脉冲指令 四,特殊指令 正文开始 一,应用指令 1, [STL] ...

  3. 工业读写器对接信捷 PLC通信示例

    1简介 FR系列阅读器是一种高稳定性的非接触式工业级读写设备.其工作频率为13.56MHz,支持Modbus通信协议,支持ISO/IEC 15693标准和ISO 18000-3M1标准,支持RS232 ...

  4. 信捷PLC 批量传送位 MOV DMOV QMOV

    信捷PLC有没有类似三菱PLC那要的批量传送多位的指令呢,有的,如下图所示. MOV DX0 D0  传送X0~X17 共16个点到D0.0~D0.15 DMOV DX0 D10  传送X0~X37 ...

  5. 信捷pLC C语言错误格式,信捷PLC常见问题及解决方法经验分享

    目前国产PLC以信捷为主,主要总结下信捷PLC常见问题及解决方法如下: 一.为什么PLC与外围设备无法通讯上? 通讯失败一般归纳为以下几个问题: 1. 通讯线:连接可能不正确,或接触不良,用户可更换通 ...

  6. 信捷服务器Z相信号,信捷plc标记与中断处理小知识

    [信捷plc标记与中断处理小知识] 有关信捷plc的编程知识,在信捷plc中标记P.I用于分支与中断,标记I一般用于中断功能,包括外部中断.定时中断等场合,分支用的标记(P)用于条件跳转或子程序的跳转 ...

  7. 信捷plc的pid控制_基于信捷plc的pid参数自整定的温度控制

    苏卫峰 摘要:本文介绍了一种基于临界振荡法的PID自整定方法,通过整定可得到较佳的PID参数.采用信捷XC系列本体的PID控制,采用开关量输出,利用PT100传感器采集到温度,通过信捷模拟量温度混合模 ...

  8. 信捷PLC的C语言程序写法例子

    有些同学用信捷PLC的C函数功能块,不想受函数参数的约束,想随便用寄存器是数值来做计算.可以把需要参与计算的数据放在一个结构体里面,把结构体声明在头文件里面,然后结构体里面再嵌套结构体指针来指向另外的 ...

  9. 信捷PLC中Y0用C语言怎么表示,信捷PLC

    信捷PLC 我们这边按住按钮,那边电机启动,这一切,是如何实现的呢?首先,我们来看实现这个功能的梯形图:零基础,十分钟入门PLC(可编程控制器),掌握它的工作原理这就是PLC中的梯形图.信捷PLC 用 ...

  10. 电脑连接信捷PLC方法

    1. 以XC系列为例,需要专用的信捷PLC下载线 2. 打开PLC编程软件,把串口线连接PC和PLC.,并查看端口:我的电脑->设备管理->串口(端口),以端口5为例 3. 连接PLC:选 ...

最新文章

  1. linux dmesg命令参数及用法详解(linux显示开机信息命令)
  2. php预测,趋势预测法-PHP实现
  3. jquery ajax异步和同步从后天取值
  4. Aix iostat命令解析
  5. 深入理解Spark 2.1 Core (八):Standalone模式容错及HA的原理与源码分析
  6. 《移动App测试的22条军规》—App测试综合案例分析23.13节测试微信App的流量和电量消耗...
  7. 开发经常犯的错误之→【join表连接关联查询 】
  8. Android 应用开发(9)---内联复杂的XML资源
  9. 基于HTML5的WebGL结合Box2DJS物理应用 1
  10. 边缘计算应用场景_从6大应用场景,看边缘计算落地生根
  11. UGUI 在面板经常使用的表格布局制作
  12. 算法基本和常见排序算法
  13. Spring整合activityMq
  14. STC-ISP下载编程烧录软件绿色版(单片机必备)下载
  15. ImportError:cannot import name 'distribute_covar_matrix_to_match_covariance_type'
  16. 高端驱动和低端驱动--ir2110
  17. 3D人脸重建:《Joint 3D Face Reconstruction and Dense Alignment with Position Map Regression Network》
  18. hdu-6638 Snowy Smile
  19. android实现箭头流程列表_Android下拉列表选项框及指示箭头动画
  20. 虚幻4--UE4是什么?

热门文章

  1. K3wise数据字典及常用表及视图
  2. Nginx通过反向代理实现单端口访问多个服务
  3. 让Google chrome支持迅雷
  4. 我的世界服务器物品管理,JEI物品管理器 _ 我的世界Minecraft中国版官方网站——你想玩的,这里都有...
  5. Quartus波形仿真教程
  6. java jdk 64 1.8_JDK1.8 64位官方下载
  7. 解决 Hbuilder打包 Apk pad 无法横屏 以及 H5 直接打包 成Apk
  8. 使用dea-toolbox进行数据包络分析
  9. dreamweaver网页设计作业制作 学生个人网页单页 WEB静态网页作业模板 大学生个人主页博客网页代码 dw个人网页作业成品
  10. Rhino for Mac Essential Training Mac平台的Rhino基础教程 Lynda课程中文字幕