资深PLC工程师经验:PLC程序中的IO映射技术
可编程逻辑控制器(PLC)程序中如何将原始输入和输出数据转换为特定标签的过程,以及如何找到一种既高效又可扩展的I/O映射方法。
1. **I/O映射的意义**: 将控制系统中的输入和输出值转换为可用数据,并在工作站级控制逻辑中使用这些数据来执行操作或显示状态。
2. **I/O信号类型**: 介绍了不同的发送和接收PLC信号的方式,如远程I/O机架、现场I/O模块和本地I/O卡等。
3. **标记名称**: 每个I/O的标记名称通常来源于与I/O设备通信的模块的名称,例如“InputCard1”。
4. **映射方法**: 介绍了两种不同的I/O映射方法:
- 在硬件配置时映射I/O标记:如TIA Portal for Siemens PLC和贝加莱PLC提供的直接在设备级别映射信号的功能。
- 手动映射I/O标签:如罗克韦尔自动化控制系统,需要在梯形图逻辑中手动映射。
5. **映射类型**: 讨论了使用用户定义的类型(UDT)来映射I/O信号,包括创建输入和输出UDT,以及如何通过子例程进行映射。
6. **为什么进行映射**: 强调了在复杂的自动化项目中,使用映射方案可以保持I/O的组织性,便于维护人员查找传感器,并减少集成时间。
具体过程流程
### 1. 理解I/O映射的基本概念
I/O映射是将PLC的输入输出信号与程序中的变量相关联的过程。这使得程序能够根据输入信号执行逻辑操作,并将结果输出到相应的设备。
### 2. 确定I/O设备和信号类型
识别需要连接到PLC的输入(如传感器)和输出(如执行器)设备,以及它们的信号类型(数字或模拟)。
### 3. 使用SCL语言进行映射
SCL(Structured Control Language)是一种高级编程语言,可以方便地完成复杂的逻辑操作。使用SCL的PEEK和POKE指令可以进行变址寻址映射。
#### 步骤3.1 创建数组变量
在 DB(Data Block)块中创建一个数组变量,用于表示传感器或执行器的状态。
#### 步骤3.2 使用PEEK和POKE指令
- **PEEK_BOOL**:用于从I/O区、M区、DB块等读取数据。
- **POKE_BOOL**:用于向I/O区、M区、DB块等写入数据。
### 4. 利用FOR循环进行批量映射
如果I/O点是连续的,可以使用FOR循环来批量映射,通过计算字节地址和位地址来实现快速赋值。
### 5. 配置智能IO设备
在硬件目录中添加智能IO设备,并确保设备名称与源项目中名称一致。分配给控制器,并检查自动分配或手动设置的地址。
### 6. 编译、下载和测试
编译并下载PLC项目,使用监控表添加传输区数据,给Q区赋值,并监控发送和接收数据区是否一致。
### 7. 处理常见问题
- 确认网络连通性。
- 检查智能IO设备的名称是否与源项目一致。
- 确认硬件和软件已下载。
### 8. 控制器与智能设备的通信
建立PLC数据类型与传输区中IO地址的映射关系,使用MOVE指令进行整体传输。
### 9. 使用UDT进行映射
创建用户定义的数据类型(UDT),将输入输出信号映射到UDT中,简化程序编写。
### 10. 避免直接使用物理地址
在主程序中避免直接使用物理I/O地址,而是通过中间寄存器或全局DB进行映射。
### 11. 内部和外部IO映射
了解西门子PLC的内部和外部IO映射实现方式,通过硬件端口接入信号,并在软件中进行配置。
### 12. 执行I/O映射
在变量列中将项目变量分配至每个设备输入和输出通道,执行I/O映射。
通过以上步骤,可以实现PLC程序中I/O映射的配置,提高程序的可读性、可维护性,并简化程序的编写和调试过程。
哪款PLC最难学?
作为刚接触PLC的新人来说总有这样的困惑,我该从哪款PLC 学起呢? 这种问题我们论坛的网友也有很多在提问!PLC的种类繁多,品牌大致分为欧系、日系、美系,欧系PLC以西门子为主,日系有三菱、欧姆龙、松下……,美系有罗克韦尔(A-B)通用电气(GE)公司等等。
事实上在很多公司里面的使用的PLC品牌并非单一品种,工程师要适应不同项目的需求,还是需要掌握更多品牌PLC的技术知识,尽可能的丰富自己的知识面!那么在众多品牌的PLC中您认为哪个品牌最难学?下面来一起看看网友的观点,也欢迎朋友们加入讨论!
举个栗子,某些网友的感受:
施耐德,唯一没有学会过的一款知名PLC,主要是软件安装复杂,编程资料甚少,软件不通用,如果有机会,还是想弥补这个遗憾,最后一公里,参差不齐,百家齐放。
AB: 入手难,因为厂家技术支持收费,下载了AB中文软件安装,成功之后登入编程界面发现是英文版的,本人英语不行。
对此您有哪些看法呢?
先看看大家都怎么说:
yuanle
最难学的是美国的Softplc,这个是PLC的品牌,不是大家口中的软PLC,使用Java编程,我相信,目前的PLC使用者中至少有95%玩不转Java。
郭远林
话说三菱的PLC的品牌适合我们习惯
changmaogood
还木有开始学。之前在学校里学过三菱的,现在都忘了,感觉应该是三菱的最容易学,不知道那个最难学,我们应该讨论一下哪种PLC用在哪个领域多一点,这样方面后续想学习PLC的一个指引的做用
这不是特伦特
AB难,三菱最简单,因为三菱和继电器控制原理图类似,容易懂
huoshi
相比较施耐德比西门子,三菱难学!
折戟沉沙铁未销
我们公司有7/8台的施耐德PLC的自动上下料机台没人会弄瘫痪在哪了
鱼雷艇
学习那么多干嘛 挑几个学精不好吗
zj841015
入门以三菱为好,最难学的是西门子300以上的PLC
chen6717
施耐德和AB的PLC,感觉难学,也因为接触的少,自己在实际工程应用的不多
竹叶三—王者之师
国外品牌施耐德,国内的腾控都是我认为难学的。
还是日系及相关的好学。西门子等其次。
xiaobing66
没有认真接触学习过的就会觉得难,开始接触信捷,三菱,后来接触西门子,没接触前觉得特别难,现在又觉得西门子挺好用
Frank lu
欧姆龙开始用的不习惯
请叫我王老湿
外国的plc相对艰难,国产plc相对入门上手快,特别是只有英文版软件的plc,看着头大,功能越多编程越难,基恩士比较容易上手,帮助文件里面就有实例程序,可以复制修改就是自己写的
hommy2013
国的plc相对艰难,国产plc相对入门上手快
will666
AB不难,只是以前资料相对较少,卖的比较贵,用的人少,显得学起来难,实际上比西门子入门要简单很多。西门子相对来说入门难一些,主要是功能太多,需要设置的地方更多,一不小心就错了,但是因为资料多,再加上西门子官方论坛做的非常好,自学起来很容易。用过的PLC中最难的感觉是GE,用的是PAC3i系列的冗余,CPU和IO的通讯不是硬件配置上就能用,而是需要编程做映射,冗余切换也是要用官方的程序写,感觉他就是给你个平台,功能都要自己去写代码,那个项目愣是在机柜边干了将近一个月才把程序做出来,还是请GE的技术指导了好几天,给我把项目架构搭起来。
千山独步
习惯西门子PLC后,觉得日系PLC用起来别扭,美系PLC没使用过。
乖乖小笨熊
腾控我也是认为难学,测试过后就不再选用了
chen6717
说到学习PLC的难易,感觉关键还是相应品牌的软件的难易,全英文(外文)的PLC软件的使用上,自然要比中文的难。再加上软件自带的帮助系统和网络上相关资料的普及度,个人的项目使用等原因导致。现在的CodeSys系统好像有集成各家品牌的趋势,这块也是值得我们学习的。
从投 再来
个人认为PLC 难学分2种,一种是入门难,另一种是精通难。市场占有率广的相对好入门。
黄鸿卿
施耐德,AB
yinguiyao
难不难学 跟PLC品牌没关系,
1、看PLC的产品定位 2看学习者基础
对于电工出身的,适合三菱、欧姆龙等低端型号,如FX CP 等,学习梯形图语言,因为和继电器电路类似,所以入门很容易,
我推荐这类初学者用欧姆龙的CP1H,或者三菱FX3GA 这俩型号应用目前不过时,下载数据都是USB直连 很简单,软件也不大,支持基础的梯形图语言,能力提升还可以学其它语言
对于科班出身的,想必都有高级语言基础 那就PLC学啥都简单了,如果你要认为PLC难,那你大学就白念了
aragaki
我觉得还是要看PLC的生态圈是否齐整。其实,很多的功能都是一通百通的,我推荐西门子的PLC,功能强大,而且教学部分内容很细致。
zzzicco
目前用过西门子,GE,三菱,西门子算是最常用的,比较习惯这种方式,GE对我来说用起来比较不顺手,感觉有些困难
yang20908
Codesys 菲尼克斯 倍福 B&R 这些才麻烦
川疆粤沪
用过很多种PLC。目前感觉最难搞的是西门子S5系列和贝加莱PC2000系列。
S5从低端到高端有好几个系列,即使同一个系列,不同CPU, 就有些指令不兼容,系统功能块定义不一样,同样功能的模块,软硬件设置又有区别,全部手册摞起来比人还高。要看懂一些远古大神的程序真的好比读天书。
贝加莱的问题是想法太多,一个模块功能太多,数字模拟通讯运动控制都想搞在一个巴掌大小的模块上,最后弄的是一个模块里就有几个CPU, 还要不同的软件来编程配置。连他们的客服都搞不明白,直接劝我放弃。否则要找欧洲本部的人来支持。
李纯绪
欧美的很多产品设计思想与我们思维方式有差距,这些洋人考虑问题很奇怪,有直道不走非绕圈子。所以,欧美的PLC都不好学。还是PLC老祖宗--欧姆龙好!
victor329
无所谓哪个难学易学吧,反正是熟能生巧,用的多了自然认为就好学了!
从毕业后接触的三菱算是入门级,到后来的OMRON,再到西门子,倍福,AB……
个人认为不论是梯形图还是语句表,原理大同小异,总之,还是实践出真知,真正在项目中用一用,才能真正的入门,要想精通,还有很长的路要走啊!
Qoml
BECKHOFF倍福的PLC,值得拥有姓名!!高级语言以及云平台的接入才是难度的开始
柴
我目前就使用过,西门子的,三菱的,台达的,信捷的,感觉西门子的困难一点,水平比较差还要继续加油
看了这么多网友的观点,我们听听专业建议,看看蔡慧荥老师怎么说:
有人说施耐德、AB、倍福、贝加莱PLC难学,也有人说西门子、欧姆龙PLC难学,其实每个人的基础不一样,看法也会有所不同。
对于一些电工出身,没有接触过PLC的,当他初次接触某些品牌PLC(比如三菱、西门子)的时候,他可能就会认为PLC难学,认为西门子PLC比三菱PLC的难学。一是他接触的PLC品牌少,还不知道有其他的PLC,二是所以会有这样的看法。对于这些初学者,适合选择三菱小型系列的PLC,如FX系列,入门也会比较容易。
对于有一定基础,有使用过常见品牌PLC的,他们可能会认为一些品牌,比如倍福、贝加莱等难学,其实是因为这些品牌的资料相对较少,使用的人少,显得学起来难。像常见的,比如三菱、西门子PLC,因为官方论坛资料多,使用的人多,自学起来相对容易些。
当然还有一种情况,是对于编程语言这一块的,一般常用的是梯形图语言,有些人会认为ST语言,SCL语言难学,那是因为他们没有C语言基础。所以这样就不是哪个品牌容易哪个品牌难的问题了,这也是跟个人知识水平层面有关。
说了这么多,其实不论是哪个品牌的PLC,原理都是大同小异的,无所谓哪个难学易学,熟能生巧,用的多了自然就不觉得难了!
↓↓↓领取学习资料
相关问答
贝加莱PLC有中文界面的编程软件吗?
据我所知,没有中文版的,用于OEM的是AutomationStudio,版本有2.X和3.X的,均有英文版和德文版的,软件支持梯形图(LD)、指令表、顺序功能图、结构文本、Basi...
贝加莱伺服驱动器如何与贝加莱PLC通讯连接?
首先获得贝加莱PLC的使用手册和伺服驱动器的使用和安装手册,然后搞清楚PLC需要控制伺服驱动器的接线方式,是使用脉冲信号接线方案还是使用通讯数据线的接线方...
贝加莱X20DO6322PLC报故障?
贝加莱X20DO6322PLC是一款数字输出类型的PLC,如果出现报故障,需要根据具体的故障代码和报警信息来分析和解决问题。以下是可能导致贝加莱X20DO6322PLC报故障的...
程序怎么下载到plc?
将程序下载到PLC的步骤如下:将编译好的程序从电脑传输到PLC,这一过程一般叫做“下载”。将程序从PLC传输到电脑,这一过程一般叫做“上载”。不同厂家的PLC,...
贝加莱pc2000怎么用?
典型配置:powerpanel+i/o+6轴伺服(所有运算和机器人的多维数组算法全部在强大的powerpanel里完成),当然考虑机器人视角器,有可能会用一个mobilepanel.软件...
plc连接不上?
那是plc接口与电脑接口不匹配的原因造成的。首先检查接口地址,然后需要特定的通讯线,特定是指:比如plc是三菱的,就得用三菱的通讯线与电脑连接,这样才能通...
贝加莱PLC内存卡能不能拔下来?
贝加莱PLC内存卡可以拔下来。内存卡是贝加莱PLC中存储器的一部分,用于存储程序和数据。在需要备份程序或在装置在不同的控制系统时,需要将内存卡拔下来。但在...
plc怎么恢复出厂设置?
1、首先,在西门子中提供一个wipeout.exe应用程序,可以恢复PLC为原厂设置,并且删除用户程序,数据块,和所有的配置信息,PLC将被设置为地址2,波特率9600。2...
如何进行工业生产设备的数据采集?
4)通过大数据分析和收集注塑机使用数据、故障数据,为注塑机系统的研发改进提供支撑;5)远程编程,远程参数设置,特别是非标设备这一功能可以大大降低服务成本...
plc控制板的价格是多少?正打算购买。
[回答]plc控制板的报价如下:1.深圳市正盈机电有限公司报价:36元2.北京贝加莱工控科贸中心报价:45元3.深圳捷多邦科技有限公司报价:100元以上价格来源于网...