高端推荐帖

关于西家传动的小马拉大车和大马拉小车应用实例

最新内容

西家传动,讲究其传动的专业性。它要求变频器与电机第一次连接,一定要在变频器里对控制的实际电机做等效模型。所以才有了快速调试的这个套路程序。假如应用比较随意,就是让电机转起来即可,那这个快速调试的流程就要考虑规避。让电机只进行最基础的V/F控制即可。V/F控制嘛,就是一个曲线的控制,只要把这个曲线设置的与实际电机匹配,然后做好了截止电流的保护设置,就可以了。这属于用具有一定性能的专业变频器去做最简单的电机运行应用。所以,调试步骤一定不要用快速调试的套路去做。仅供参考。

变频器与电机的适配,在西家传动的手册里已经讲的很清楚了。没什么好说。照着去选,去做就可以了。但是,假如实际中碰到了小马拉大车,和大马拉小车的需求。就是要违反手册规定,那又该咋办呢?呵呵,要么违反规定的事不做;要么就想办法把不可能变成可能。好,实例来了。第一则,大马拉小车的应用。单位一同事给我来电话,说他今天出差去了一个用户,用户让他把一个重载11kW的S120系统,电机拆掉,换成一个2.2kW小风机驱动,这是要做一个什么研究项目实验使用。结果,这同事觉得这是很容易的事,直接把小电机接到重载11kW的S120上,工厂化复位,然后把小电机的铭牌数据输入,做快速调试。没想到,连下载装置这一步都不让过。就是说电机数据有错误。搞了一天无果。打电话给我求助远程小葵花支持。结果一样的情况,离线快调的数据在线无法下载。有点小懵,晚上再细想,感觉小马拉大车这种非常理的应用,就得非常理的设置才行。为什么要把真实的小电机告诉装置呢?骗它不就结了?哈哈具体的方法,重载11kW的变频器,就默认于其自身功率一致的电机。只是把额定转速对应于实际电机的极对数参数即可。第一步,控制方式一定要V/F控制。P1300 = 0。第二步,然后把电流截止参数P640 = 实际小电机的额定电流。这是安全运行的前提。第三步,在线状态P340 = 1静态计算。第四步,完成上述三步以后。设置斜坡时间,限制最高转速。直接启动运行,完成大马拉小车的应用。第二则,小马拉大车的应用。生产部有一个试验要做,只有22kW电机和重载的11kW_MM440变频器,结果也是如此。操作人员想简单了,工厂化复位变频器,按22kW电机做快速调试,系统报错。过电流。把我叫去,二话不说,变频器重载11kW,就按11kW电机输入铭牌数据,然后P1300 = 0;P640 = 变频器额定电流;在线状态P340 = 1静态计算。完成后,设置斜坡时间和最高转速限制。直接驱动22kW电机运行。没有报错问题出现。注意,这种小马拉大车的前提条件是,小马的额定电流大于等于大电机的负载转矩电流与励磁电流之和。只要满足这个条件。运行起来就没有问题。否则小马会过载,拉不动车。电机是转不起来的。说明:这种非正常的应用,不会有很好的运行特性,但简单转起来没问题。强调三点:第一,V/F控制第二,P640电流限制第三,只做静态计算,不做静态辨识!即可保证安全工作。

kdrjl

2025-11-29 16:00:15 224 4 0

参与讨论
关于sinumerik one的模拟量控制主轴问题

最新内容

感谢分享。

我分享一个最近使用的东西吧模拟主轴的,one系统没有了ADI, 所以以后可能要采用其他方式,目前西门子官方给出两个方式,一个是用TM31给驱动配置挂一个对象,一个是用et200带工艺模块下面给出SIOS上两种官方指导手册TM31: 109974253ET200SP:109823551个人比较了一下性价比第二种较方便我前段时间尝试测试了一下,测试系统是one 6.15未测试成功,百思不得其解后来看了一下系统升级备注,要至少是6.22之上的固件才能支持,后来升级系统,再测试OK了至于参数设置,参照手册没有问题。略了。这里主要是给大家分享一下,避下坑也说明一件事,大家以后干某些硬件功能,一定要先看系统升级支持,以便了解最新应用后面介绍一下原理其实用了高性能的ET200SP头带了工艺模块,记住这里一点,工艺模块和HF的头,因为只有HF的头才能支持IRT,然后利用IRT再同步到NCK侧。6.22版本确实是一个分水岭,功能加了很多

洪兴赵子龙

2025-11-20 11:31:46 552 4 1

参与讨论
流程步编程的快捷

最新内容

这程序实在不忍看,好比一乳牙小儿跟家长说,看,我会自己吃饭呢!在家里说说行,就别在学校里说了呀,不知道这世界有多卷吗?告诉你个秘密,论坛里讨论这种应用的基础水平,就是任意一个阀的动作次序,动作次数,接通的延时都是可通过HMI在线编辑的,是一种动作配方知道吗?09年注册的老网友了是吧?展示点你16年的成就吧?别老是第七代,该到第八代了对吧?

按下绿色开始按钮(I1.1)后,气缸1(Q136.2)伸出,气缸1伸到位(I137.2)后,气缸1缩回,气缸1缩到位(I137.1)后,气缸2伸出,气缸2伸到位后,气缸2缩回,气缸2缩到位后,气缸3伸出,气缸3伸到位后,气缸3缩回,气缸3缩到位后,气缸2伸出,气缸2伸到位后,气缸2缩回,气缸2缩到位后,气缸1伸出,气缸1伸到位后气缸1缩回,气缸1缩到位后,气缸2再次伸出,以此往复循环,实现3个气缸按1-2-3-2-1-2-3……的顺序往复伸缩。按下停止按钮后,循环停止。再次按下开始按钮,循环可再次开始。

第7代CNC

2025-11-20 09:55:34 768 9 3

参与讨论
万万没想到啊!博图还有计算器功能

最新内容

学习了,之前确实没用过这个功能。

万万没想到啊!博图还有计算器功能拖拽 计算编一段LAD 如图:把你想计算四个数来个公式,就可以得出结果! 如图 (4X4)X3)/2=24 点击公式,可以任意修改!

sycbh

2025-11-14 15:50:04 1229 11 2

参与讨论
西门子VARIANT数据类型具体说明

最新内容

就是C语言的指针

在西门子 PLC(如 S7-1200/S7-1500)的博图(TIA Portal)环境中,VARIANT(变体)是一种通用数据类型,其核心特点是 “可动态存储不同类型的数据,并记录数据的类型信息”。它类似于编程语言中的 “万能类型”,主要用于需要灵活处理多种数据类型的场景(如通用函数块、数据转换工具等)。一、VARIANT 的核心特性动态类型存储VARIANT 变量可以存储几乎所有西门子 PLC 支持的基础数据类型(如 BOOL、INT、DINT、REAL、STRING、ARRAY、STRUCT 等),且在存储数据时会自动记录该数据的类型信息(如 “当前存储的是 INT 类型”“当前存储的是 REAL 类型”)。例如:同一个 VARIANT 变量,可先存储一个 INT 类型的数值(如 100),后续再存储一个 REAL 类型的数值(如 3.14),变量会自动更新内部的类型标识。固定长度VARIANT 在 PLC 中占用16 字节固定长度(与存储的数据类型无关),其中包含两部分信息:数据本身的存储(根据类型动态分配空间,最长不超过 16 字节);数据类型的标识(记录当前存储的数据属于哪种类型,如 “INT”“REAL” 等)。兼容性仅支持 S7-1200(固件版本 V4.0 及以上)、S7-1500(固件版本 V2.0 及以上),旧型号 PLC(如 S7-300/400)不支持 VARIANT 类型。二、VARIANT 的典型用途VARIANT 的核心价值是 **“通用性”**,解决了 “同一功能块需适配多种数据类型” 的问题,常见场景包括:通用函数块(FB):例如创建一个 “数据校验” FB,输入参数可能是 INT、REAL、STRING 等不同类型,用 VARIANT 作为输入,可避免为每种类型单独设计 FB。数据转换工具:实现不同类型数据的动态转换(如将 VARIANT 存储的 INT 转为 REAL),无需提前确定输入类型。数组 / 列表处理:存储多种类型的数据到同一个数组(如 VARIANT 数组),灵活管理混合类型的数据集合。三、VARIANT 的使用方法(结合博图指令)在博图中,需通过系统函数处理 VARIANT 变量(无法直接像普通变量一样赋值或运算),核心函数如下:函数名称功能描述VAR_TYPE 获取 VARIANT 变量当前存储的数据类型(返回类型标识,如 16#0002=INT,16#0005=REAL)。 VAR_SET 向 VARIANT 变量写入指定类型的数据(需明确源数据类型)。 VAR_GET 从 VARIANT 变量中读取数据,并转换为目标类型(需确保类型兼容,否则报错)。 VAR_IS_VALID 检查 VARIANT 变量是否包含有效数据(非空且类型标识正确)。 示例:VARIANT 的基本操作假设需创建一个 VARIANT 变量,先存储 INT 类型数据,再读取并转换为 REAL:定义变量:在 DB 块中定义:Var_Data:VARIANT 类型(存储动态数据);Int_Value:INT 类型(源数据,如 200);Real_Value:REAL 类型(目标数据,接收转换后的值);Type_ID:INT 类型(存储 VARIANT 的类型标识)。写入数据(VAR_SET):scl// 向Var_Data写入INT类型的Int_ValueVAR_SET( Value := Int_Value, // 源数据(INT类型) Result := Var_Data // 目标VARIANT变量);获取类型(VAR_TYPE):scl// 读取Var_Data的类型标识(INT类型的标识为16#0002)Type_ID := VAR_TYPE(Value := Var_Data);读取并转换(VAR_GET):scl// 从Var_Data中读取数据,转换为REAL类型并存储到Real_ValueVAR_GET( Value := Var_Data, // 源VARIANT变量 Result := Real_Value // 目标REAL变量);// 此时Real_Value的值为200.0四、注意事项类型兼容性:使用VAR_GET转换数据时,需确保 VARIANT 存储的类型与目标类型兼容(如 INT 可转为 REAL,但若 VARIANT 存储的是 STRING,直接转为 INT 会报错)。建议先用VAR_TYPE检查类型,再执行转换:sclIF Type_ID = 16#0002 THEN // 确认是INT类型 VAR_GET(Value := Var_Data, Result := Real_Value);ELSE Error_Flag := TRUE; // 类型不兼容,触发错误END_IF;存储限制:VARIANT 无法存储超过 16 字节的数据(如长 STRING、大数组),若数据长度超过 16 字节,VAR_SET会返回错误。使用范围:VARIANT 变量仅支持在 DB 块(全局 DB 或背景 DB)或临时变量(L 区)中定义,不能直接用于过程映像区(I/Q 区)。性能影响:由于 VARIANT 需要动态处理类型信息,其操作效率略低于固定类型变量,不建议在高频循环(如 1ms 时钟中断)中大量使用。五、总结VARIANT 是西门子 PLC 中用于 “动态处理多类型数据” 的灵活工具,通过VAR_SET/VAR_GET等函数实现数据的写入、读取与转换,核心优势是简化通用函数块的设计。使用时需注意类型兼容性和存储限制,适合在需要通用性而非极致性能的场景中使用。

fukfk

2025-11-13 08:39:39 652 2 1

参与讨论
利器与匠心:论电气自动化工程师的双重修炼

最新内容

干工科的要具备文学修养。这是我上学时,语文课老师告诫的。当时大家对工科大学课程开语文课特别不肖一顾,认为是浪费时间。但是,记得当时的系主任特别来给同学们解释。学工科掌握语文知识很重要。它对人的表达能力,判断能力,逻辑思维能力,都是有最直接影响与作用的。后来的事实也确实证明了专业技术工作中语文知识的必要性与重要性。自动化与驱动专业的工程师不仅要具备足够的专业技能,也要具备语文功底,这样才能使自己的工作能够向相关人员清晰地表达,自己的工作也具有严谨的逻辑性。干工科专业的人,不能忽略自己的文学修养。楼主的文章确实很好。题目也很好。看后耳目一新的感觉。利器是硬件条件,匠心是软实力。两者都要硬,即可在行业里天高任鸟飞了。

“工欲善其事,必先利其器。”这句古老的箴言,在电气自动化领域被赋予了新的时代内涵。从初入行业的新手到深耕数十年的资深工程师,许多人都在思考:什么是电气自动化工程师最应掌握的能力?什么样的工程师最受人尊敬?答案或许不仅在于对“器”的掌握,更在于对“道”的领悟——工具的使用能力与灵活的应变思维,正如利器的锋芒与匠心的智慧,共同塑造着一名卓越工程师的职业生涯。一、利器之魂:工具能力的三个维度电气自动化工程师的“利器”,远不止于万用表、示波器或一套编程软件。它涵盖硬件、软件与思维工具三个层面,是技术能力的基石。1. 硬件:连接物理世界的桥梁硬件是自动化系统的骨骼与血肉。熟悉硬件特性,能根据需求选型、调试、优化。例如,在一条产线故障中,能否通过信号追踪快速定位故障模块?能否在设计阶段预见电磁干扰问题?这种对硬件的“手感”,源于常年累月的实践,是教科书无法替代的经验财富。2. 软件:构建智能系统的核心编程能力已成为现代电气工程师的必备技能。软件工具是实现自动化的“神经中枢”。更关键的是,工程师需理解代码背后的逻辑——如何让程序既高效又可靠?如何让系统具备容错与自诊断能力?在工业4.0的浪潮中,是工程师从“执行者”迈向“设计者”的关键。3. 思维:超越技术的决策能力最容易被忽视却至关重要的“工具”,是工程师的思维方式。系统化思维能统筹全局,将零散设备整合为高效整体;逻辑思维能精准定位问题,避免陷入“试错循环”;创新思维则能突破技术瓶颈,用非常规方案解决复杂问题。例如,面对一个多变量耦合的控制系统,能否抽象出数学模型?在成本与性能的权衡中,如何找到最优解?这种能力,是工程师从“技工”蜕变为“专家”的分水岭。二、匠心之境:受人尊敬工程师的四种特质技术能力决定工程师的下限,而人格与智慧决定其上限。最受人尊敬的工程师,往往是那些在复杂环境中游刃有余,始终坚守初心的“智者”。1. 技术扎实,却不忘持续学习行业技术日新月异——从传统继电器到工业互联网,从单机控制到云边协同。受人尊敬的工程师从不满足于既有知识,而是主动拥抱变化。他们可能是第一个研究新协议的人,也可能是团队中无私分享经验的“导师”。他们的权威,建立在不断更新的技术实力之上。2. 善于沟通,具备“翻译”能力电气自动化工程师处于机械、软件、管理等多方利益的交汇点。顶尖工程师能听懂机械工程师的“间隙调整”,理解软件工程师的“异步处理”,并向非技术出身的经理清晰阐述技术方案的商业价值。这种跨界沟通能力,让技术不再孤悬于象牙塔,而是成为推动生产的实际力量。3. 灵活应变,在约束中寻找最优解现场永远充满意外:设备型号与设计不符、工期紧迫、客户需求反复变更……卓越的工程师如同经验丰富的舵手,能在资源限制下找到创造性解决方案。例如,用现有备件临时替代停产模块,通过参数优化弥补硬件性能不足。这种“在混沌中建立秩序”的能力,是工程师价值的极致体现。4. 心存善念,在利己与利他间平衡行业生态复杂,既有潜心技术的“君子”,也有争功诿过的“小人”。受人尊敬的工程师深谙人性,却不忘初心:他们会在竞争中保持专业操守,在冲突中坚守底线;他们会主动帮助新手成长,在团队困境中承担责任。这种“知世故而不世故”的善良,让他们赢得长期信任——技术会过时,但人格魅力历久弥新。三、知行合一:从利器到匠心的修炼之路如何成为一名兼具技术深度与人格高度的电气自动化工程师?这条路径需要刻意修炼:基础阶段:精通至少一个技术领域(如PLC编程或驱动控制),同时广泛涉猎相关学科,构建“T型”知识结构。进阶阶段:参与完整项目周期,从需求分析到现场调试。在失败中积累经验,尤其注重培养系统思维与风险评估能力。高阶阶段:学习项目管理与沟通艺术,实现从“做事”到“育人”的转变。尤为重要的是,工程师需建立自己的“工具箱”——不仅是软件库与硬件手册,更包括解决问题的思维框架:如何分解复杂问题?如何评估技术风险?如何预判人性因素对项目的影响?结语:技术的温度电气自动化终究是为人服务的领域。线路与代码之间,流淌的是对安全的守护、对效率的追求、对价值的创造。一名真正的工程师,既是手持“利器”的专家,也是心怀“匠心”的智者——他们用技术构建精确的世界,更用智慧与善意让这个世界值得信赖。当年轻工程师询问职业真谛时,或许可以这样回答:让你的工具足够锋利,让你的内心足够明亮。前者让你无所不能,后者让你无人不敬。

南山归农

2025-11-06 09:58:23 1031 7 3

参与讨论
平旋盘机构机床参数的设置

最新内容

感谢分享!能结合图片说明就更好了,

平旋盘结构的机床经常应用到油管外螺纹加工及套管内部油槽及密封槽的加工,而这个轴的参数设置是和普通轴有区别的。 大部分平旋盘机构有由伺服轴加皮带轮带动丝杠旋转,丝杠上的丝母座带动平旋机构上下或左右移动。和普通轴相比,它有两个传动比。一是电机和丝杠之间(假设1:5),还有平旋盘机构本身的传动比(也就是Tg(),我这台327:100),普通轴做法是分子相乘比上分母相乘,如查有第二编码器,再把31040[1]设为1,就可以了。 而平旋盘结构不可以,我们为了提高平旋盘的精度通常在丝杠侧加装光栅尺,而光栅尺只是检测丝母座走的精度,而不是平旋盘本身走的精度(大部分平旋盘机构不方便加装直接测量系统)。这就牵扯到机床参数与其它轴不同了。具体做法:把平旋机构的传动比写入31070和31080,因为第二编码器不是直接测量的。所以31040[1]设为0

sycbh

2025-11-05 10:14:36 419 1 0

参与讨论
CU310-2PN伺服系统的调试笔记

最新内容

吃透原理,理论和实践结合,调试行云流水,一气呵成点赞。

一台以CU310-2PN为控制的伺服系统。电机额定功率是55kW,额定转速980rpm,电机轴系是一个200kg当量质量的转鼓,CU310-2PN采用伺服模式驱动。最高转速为1500rpm。伺服模式驱动,其优化和辨识的参数是两个。P1910 = 1P1960 = 1优化辨识后,其PI参数和编码器输入滤波参数分别为:P1460 = 136P1462 = 13.0 msP1441 = 小于1ms然后,做一个录波看看调试效果。因为是大惯性负载,所以该系统设置了15s的加减速斜坡时间,以及3s的起始终止圆弧。其录波波形如下示:这波形效果还可以嘛。有毛病吗?但是,再仔细看看,把稳态波形的坐标系减小范围,放大波形看看呢?这是不是不好呢?起码不是很理想的那种。为什么?因为编码器信号输入的滤波时间P1441的值太小了,还不足1ms,这对于大惯性系统而言,有必要追求这样的瞬态指标吗?而且放大倍数P1460 = 136倍,积分时间P1462 = 13ms,也太邪乎了。将P1460 = 13.6;放大倍数缩小10倍P1462 = 130ms,积分时间放大10倍P1441 = 20ms,滤波时间放大20倍以上再录波看看:波形基本满意。再去现场主机看看震动状态,也没有问题。于是收拾家伙撤了。

kdrjl

2025-11-03 15:30:04 1048 7 1

参与讨论
828D系统程序段搜索功能使用不了,隐藏变灰了的问题解决。

最新内容

学习了,感谢渔工分享。

故障现象:新装的机器用了一个月后出现程序段搜索功能使用不了。解决过程:A. 客户反馈程序段搜索功能使用不了,同样的机型我试了其他机器,我是用CTRL+ALT+C备份的数据在电脑上仿真的,是可以用没有问题。B. 因为设备在苏州去现场不太现实,也不知道哪个参数不对,只能指导让客户把数据备份发我,由于他对NC备份不会操作,我教他们最简单的方法CTRL+ALT+C,插上U盘备份就可以了,然后发我。我进行仿真确实不能进行程序段搜索。C. 我就开始查有关程序段搜索的参数,找到51028怎么全是零,我检查其他机器的参数是33H,我就在电脑上改成33H然后再测试,结果好了,告知客户让客户改一下51028试试问题解决了,不用去现场了。

渔明锅红

2025-10-29 09:51:25 1046 3 2

参与讨论
论中大型设备对系统等电位、接地的重要性

最新内容

本次故障的回顾总结:通过一周的运行,故障没有再次出现。1)液压站、润滑站2处的等电位、接地功能失效;2)易福门AL1102以太网金属外层没有按要求接地到PE;3)动力电缆与信号、控制电缆敷设的桥架没有分开。

论中大型设备对系统等电位、接地的重要性 一台西门子840D sl系统的设备,cpu接口下挂profinet I/O站及profibus DP站点若干,系统配置,图示1: 所谓中大型设备,泛指一台设备当中,有主体结构、独立的液压站、润滑站、风机冷却系统等组成,各设备组件之间是互相独立,分离式结构,该设备已经使用3年余。前几天,该设备突然出现重复的系统频繁性停机报警故障,诊断界面也没有直观性信息,故障报警的出现也无规律可循,一次难啃的“骨头”就此又拉开序幕,诊断界面,图示2: 报警触发原因分析,主要报警原因为800014#,该类型报警信息泛指相对报警范围及信息都比较多的,一下子无法通过一段文字能够描述清楚的报警信息。因为类似的故障,之前有过一次,最后是一个易福门LT3023温度、液位传感器出现可能的内部通讯间隙性硬件故障,当时,同事是通过排除、替换方式,将问题锁定在这个传感器上的。经过现场检查及OP屏诊断界面观看诊断信息后,没有找到明显的有价值的报警信息,我如法炮制找来一根备件传感器,设置检测介质和上、下限等参数,将传感器插入润滑站,断电重启设备后正常,一直在设备边等待了近一个小时,相安无事后,判断为易福门的温度液位传感器硬件故障原因引起的,报警没有再次触发就回办公室写总结去了。直到晚上12点多,该设备操作员反馈说设备出现了一次停机。操作员知道前一次的排障过程,于是,把传感器根据我之前的说明,将传感器拿到一个提前准备好的水桶中,用于排除可能的液位扰动引起的传感器错误报警,一个晚上,据操作员说同样类似的停机达10多次。第二天,一上班,先紧急联系供应商,让他顺丰快递赶紧再发一根传感器过来,进行替换确认。然后,直接到故障设备现场,查看传感器HO.T和LO.T的参数,该参数是易福门记录传感器的液位高、低信号的数据,进入后查看也没有异状数据出现。液位没有异状只能在外部是否受到干扰入手排查,对传感器外壳接地,防传感器震动的硬件方面入手,探寻可能的原因,这样来来回回的停机查找,始终没有找到有价值的原因,晚上又是10多次的无症状停机,搞的操作员抱怨连天,哎,我们运维有时候也很无助的,但是,在没有真正找到问题原因前,始终有工作压力需要承担的。晚上,我看***上,还是实时在反馈无辜停机的次数。白天,能够想到的措施都先先后后的查找、确认过了的,莫不是我设备安装之前的等电位,系统接地的那些螺栓出现了松动?在这样的苦思冥想中,早上,起床的手机铃声在催我起床了。上班,处理好每天的基本工作,还是赶到设备现场,以求能够在设备现场找到蛛丝马迹,但是一次次的尝试,都将以一次次的失败而告终。供应商很给力,仓库电话告知传感器到了。拿来传感器一通应用参数设置后,拿到现场,再次将新的传感器更换上,可是,没有5分钟停机故障还是无情的出现,此说明不是这个传感器引起的故障,此时,心里感觉快要到无计可施的绝镜了?如果,此时放弃,让设备厂家来现场服务,那难得的查找过程将会被失去,几天的辛苦和心血可能会白流了。重新整理心情,对诊断缓冲区的信息,一条一条的进行了梳理,从历次的报警信息中,找到22条信息,这条信息是系统检测到某一个时段的起始报警的,这样的辨识报警信息是非常重要的,图示3:我有将报警信息另存的习惯。 从报警信息的地址中,看到是多次触发的报警,时间戳不同,说明报警的触发事件是分别的多次,2025年下午14点25分一次,2025年下午14点49分另一次的触发报警,且这次报警是有易福门的AL1102的3#站点开始的,报警含义是模块被拆除/无法寻址。重新对该接口模块的以太网插头、24V电源插头及电压进行测试,结果没有发现明显的异状。返回硬件组态在线看各从站,此时并没有再出现报警,说明这个丢站的瞬间触发的。此时,我想到了是否是电磁干扰原因,该设备使用3年,那些等电位、接地系统是否还可靠?在3#站点检查,确实因为靠近主体设备较近,等电位、接地螺栓有松动和被水基石墨腐蚀的迹象,拧下螺栓,重新对95平方的铜接头进行打磨处理后,回装、紧固。当检查到液压站设备外壳做的等电位连接时,“意外”出现了,在紧固螺栓时,M12的等电位接地螺栓居然被拧了下来,图示4: 原因应该是当初焊接的质量问题,打电话叫来同事焊接后,上电,半个小时过去了,因需要参加一个设备会议正暂时离开,等会议结束,再次到设备现场咨询说没有再次停机了,难道是有心插花,花不开“无心”插柳,柳成荫了?希望是吧。这个只能等待进一步的使用效果了,几天过去后,报警企盼的报警始终没有再次出现,说明根本问题就是这颗不起眼的等电位、系统接地螺栓了。小结:该液压站配置45KW电机2台,作为液压伺服主动力,液压的辅助系统配置22KW的电机及4.0KW的循环冷却系统,主轴电机冷却系统组成,而这些电机22KW以上是星-三角启动,其它电机为直接启动方式。这些电机及阀组的控制电缆均在这个桥架中通过,图示5: 显然当整个液压站系统等电位、接地系统断开后,原来的抗电磁干扰能力,大幅降低,出现强电干扰在所难免,而易福门的3# profinet I/O从站设置在液压站的上方这个位置,图示6: AL1102易福门接口模块,以太网连接打开、电源接口检查、确认中。 在本次检查中又发现设备安装时,设备制造商没有按要求将以太网电缆的金属屏蔽层,按要求连接到金属屏蔽层上,使电磁干扰更容易被侵入。一颗并不起眼的等电位、接地连接螺栓的松动,掉落,造成我对本次排障时间整整化了3天,无数次的丢站,无数次的排查、替换,最后结果居然是一颗接地螺栓引起的。本例比较典型的系统排查案例,有一定的参考价值,特整理后,发到论坛上供大家参考。

WWCWWC

2025-10-28 21:04:02 2104 22 4

参与讨论
博途点击设备和网络以及设备组态死机的一个解决方法

最新内容

两年之前遇到过这个问题,问了很多人,没能彻底解决,无奈重装了电脑,正好最近又遇到了一样的问题,搜了下,居然搜到了我两年前发的求助帖子,虽然回复的人很少,但是也有网友遇到过类似的问题,原贴地址如下:https://wap.siemens.com.cn/club/bbs/post/1810934.html 我经过多次次测试,发现了解决办法:只需要点击右上角的三角箭头,将打开的指令窗口收进去就可以了;再次描述下我遇到的问题:博途版本V15,程序正常打开,但是只要一点击设备和网络,或者点击和右键相关的按钮,就会卡死,然后软件闪退。由于我昨天还用的好好的,所以就回想了一下这两天电脑的操作,把安装的软件或者进行的升级都进行了卸载,还是不行。刚才又进行测试,偶然点到了右上角的窗口回收按钮,然后再点设备和网络,居然正常了,又进行了多次测试,发现都可以进行。不知道其他版本有没有类似的问题,或者有同样版本的网友可以测试一下。希望可以帮到有类似问题的网友。

两年之前遇到过这个问题,问了很多人,没能彻底解决,无奈重装了电脑,正好最近又遇到了一样的问题,搜了下,居然搜到了我两年前发的求助帖子,虽然回复的人很少,但是也有网友遇到过类似的问题,原贴地址如下:https://wap.siemens.com.cn/club/bbs/post/1810934.html 我经过多次次测试,发现了解决办法:只需要点击右上角的三角箭头,将打开的指令窗口收进去就可以了;再次描述下我遇到的问题:博途版本V15,程序正常打开,但是只要一点击设备和网络,或者点击和右键相关的按钮,就会卡死,然后软件闪退。由于我昨天还用的好好的,所以就回想了一下这两天电脑的操作,把安装的软件或者进行的升级都进行了卸载,还是不行。刚才又进行测试,偶然点到了右上角的窗口回收按钮,然后再点设备和网络,居然正常了,又进行了多次测试,发现都可以进行。不知道其他版本有没有类似的问题,或者有同样版本的网友可以测试一下。希望可以帮到有类似问题的网友。

奔跑の蜗牛

2025-10-24 15:27:33 490 0 0

参与讨论
西门子828D数控系统中MCP483指示灯含义

最新内容

谢谢分享。

设备在正常运行中出现故障,关键问题是能在第一时间找到设备故障的原因。最近有一台设备是西门子828D数控系统出了问题。查找故障时指示灯给了我们一个方向,快速准确完成排故任务。现将查阅手册中的指示灯分享出来。MCP 483 PN上有并排的3个LED灯 H1、 H2、 H3。LEDH1绿色PowerOKH2绿色PN SyncH3红色PN Fault断电OFFOFFOFF上电(电压稳定)ONOFFOFF引导启动软件开始运行,系统软件正在载入ONONON系统软件开始运行ONOFFOFF系统软件正在运行,与控制系统没有通讯ONOFFOFF系统软件正在运行,与控制系统通讯,停机状态ONONOFF系统软件正在运行,与控制系统通讯,运行状态ON以0.5Hz的频率闪烁OFF

国子

2025-10-22 15:46:44 919 4 3

参与讨论
1019 【万泉河】发掘工控PLC行业技术的天花板

最新内容

万大师不就是行业天花板么,为工控行业操碎了心,烟台方法遍地开花

1019 【万泉河】发掘工控PLC行业技术的天花板我非常看不惯行业中一些论调,主张认为PLC的技术天花板低,然后建议PLC工程师去把更多的精力转移到设备和工艺方面。比如这篇:别光盯着PLC那点技术,玩透设备和工艺才是真本事 原创 建云工控 建云工控 2025年10月17日 07:30 四川 干了这么多年自动化,带过不少新人,也见过很多同行。发现个挺普遍的现象:一聊起PLC,不少人眼睛就放光,西门子还是罗克韦尔,ST语言牛还是梯形图快,Profinet和EtherCAT谁才是未来……争得面红耳赤。这没毛病,技术是咱们这行的饭碗。但我想说,如果你只盯着PLC本身那点技术,天花板也就那么高了。真正能让设备“听话”、让产线“流畅”的,根本不是用了多牛逼的PLC或者多炫的指令,而是你对你面前那台设备吃得到底有多透,以及对控制精度那股子偏执的劲儿。要说他的推导的逻辑,是正确的。如果你已经触及了本行业的天花板, 甚至已经站到了天花板之上了,那么确实应该拓展下思维空间,做一些跨行业的应用。 很多科学史上的巨匠,都是跨界大师。然而很可惜,文章作者的前提就错了。 他认为PLC的技术低,天花板低,这本身就不对。而且大错特错。比如他所举例的 西门子VS罗克韦尔,ST语言VS梯形图,Profinet VS EtherCAT,把这些当成了天花板?拜托, 这是连入门都还没入门的前期选型好不好!顶多是技术储备和方案选型,绝对达不到天花板的层级。所以,我发现, 很多工控工程师同行没有持久学习能力, 没有长期主义精神的原因在于没有能力发现以及指定更高的目标, 掌握一点三脚猫的功夫,就以为站在了天花板之上,以为就可以比肩大师,位列仙班了。而其实只不过是掌握了基本功,刚刚具备能力能完成设计任务, 能让设备跑起来交付而已。 而每一台设备运行的背后都是不知道多少个日日夜夜加班完成的。而且,未来再做同样的工作,也仍然需要无休止的加班连夜调试。所以, 有必要帮工控同行们发掘下PLC行业的天花板技术,让大家知道,自己,以及全行业,现在有多少还达不到的难题,自己高度上还差多少距离,以免骄傲,动辄以为自己已经触及了天花板。我所发掘的天花板课题,有的是我张口就来,畅想出来的, 我自己也还没有能力做到。 有的则是我自己一直在努力尝试去实现的目标。其中的大部分,你看到了或许会不认可,卧槽,这不可能。看到不可能的时候,先别急着说卧槽,什么叫不可能?不可能就是天花板。 一个个的不可能就是你我所达不到的天花板。 你我就应该有义务去提高技能水平, 去突破这些天花板,把不可能变为可能。 为自己,为别人,为行业。(全都不会白干,都会有回报的)。首先,广义的PLC技术的定义,包含了PLC+HMI+SCADA+自编程设计的上位机,但不包含用单片机替代PLC,自己用单片机做PLC以及上端的MES系统软件和物联网IOT软件的开发, 那些只在特定行业特定企业有需求,算不上通用的PLC技术。 同时那些也有另外行业的工程师在做,涉及那些,也属于跨行业了,同样不是我们所建议的方向。放弃自己的专长,以己之弱,克他之强,到头来发现,自己辛辛苦苦跨界所掌握的一点技能, 放到对方环境里,仍然是不入流的三脚猫功夫。 那就不合算了。 即便掌握了大杂烩的技能,最终能干的也只不过打杂的工作。所以,我们所认知的PLC技术,包含了以PLC为中心的所有软件应用开发。而且作为PLC工程师,也责无旁贷。在一些小公司,连财务电脑系统瘫痪,需要重装机的工作都会请电气工程师来帮忙,而当工业系统用到一些软件需求的时候, 你说这不是PLC程序, 与设备控制无关,不是我的职责范围内,另请高明,找专业的软件公司来做。这就显得有些萎缩,不够勇敢了。1,用一套PLC品牌做成的设备,换个品牌,再用其它的品牌完成它。 即便当下没有应用需求, 那就先把技术储备做了,需要的时候可以瞬间上线。不需要再耗时耗力加班调试。如果你说这很简单,我们厂里同一个机型用过十几个品牌的PLC都做过,早就实现了。 那很好,那就再开发个工具软件,能够实现所有PLC品牌之间的程序自动迁移。2,同样的设备,不再使用PLC,而使用更便宜低廉的嵌入式的控制器,比如树莓派实现。 当然如果有能力,用单片机直接实现也是好样的。但毕竟跨行业了,这里不做要求。 然而树莓派之类的控制器,硬件都是现成的,甚至软件PLC RUNTIME也都有很多现成的方案可以选择,做到就不应该有障碍。3,设备的控制程序所用的HMI触摸屏,换个品牌型号, 甚至把市面上的所有品牌都换一遍,做成通用的画面架构,随时可以替换。 在完成的基础上开发专用的软件,能够把一个触摸屏的程序,自动翻译迁移到另一个触摸屏平台。4,不再使用主流触摸屏品牌,而是使用低价的嵌入式主机,各种嵌入式系统,在这些系统框架下,如LINUX中,自己编程实现触摸屏控制设备的功能,可以极大降低设备成本。5,如果原本的触摸屏中需要一些认证,如GMP认证, 那就在自己做的软件中实现它们。6,SCADA软件也同样的做法,除了在所有SCADA软件平台之间实现迁移之外,还可以自己写上位机程序,用C#, LABVIEW, 以及PYTHON等,自己来实现上位机功能。不算组态人工费用,一套正版的SCADA软件至少几万起步,假设公司设备一年卖出100套,那花费的成本就是至少300万,你或许说我可以用盗版软件,公司没花钱。 但你如果真有能力实现了,就给公司减少了每年300万的法律风险。一年300万, 10年3000万,有一些欠账早晚要还的。你以为公司老板不知道用这些正版软件心疼, 用盗版软件要担风险?还是不得已嘛,能够包容你我能力不足,做不到,做不好嘛!然而可笑你我竟然毫不自知, 还把自己当成位列仙班的行业大神,在公司里无所事事去插手研究设备工艺的事。那是你该做的?那能成为你的主业?你自己的主业,你自己的责任方面, 你做好了没?

万泉河

2025-10-19 15:18:39 647 1 0

参与讨论
精华
摩托车底盘测功机与自动驾驶仪

最新内容

应该是四轴,但是,这套系统的用户是电驱车,所以,就是车速(油门)开度和制动两轴。

摩托车底盘测功机,是针对摩托车整车试验的专用设备,它是把整车在路试的工况,再现于底盘测功机上进行整车路试试验。避免,驾驶员风吹、日晒、雨淋的痛苦。将整车性能在底盘测功机上完成实验项目。那么,问题来了,国家标准规定了整车试验,需要做11个循环工况,一个实验完成要跑好多小时。驾驶员一样很辛苦,于是在底盘测功机上由自动驾驶仪代替人跑试验,成了一种需求。于是,自动驾驶仪千呼万唤始出来。摩托车自动驾驶仪置于底盘测功机上的效果图:哈哈,这是铅笔画?no,这是真实的照片,经过AI变成了铅笔画。图中的自动驾驶仪,模拟了驾驶员的四肢。分别是车载油门控制,刹车控制,变档离合控制。因为图中受试车是轻便电摩,没有变挡离合,所以,只装了油门控制器与制动控制器。它的控制系统呢?见下图示:自动驾驶仪控制系统采用西家传动自动化与驱动系统组合。S7 1500T + S200伺服控制器。引以为豪的是,该系统一出,就让用户往死里整。机器代替人嘛,不用白不用。尤其是跑耐久路试。24小时不停机的跑工况。该系统也是真的很争气。皮实耐用。无故障。被用户认可了。我们的底盘测功机控制系统,采用的是西家传动。自动驾驶仪亦是。没办法,西粉嘛。就是如此认性的哟。

kdrjl

2025-10-18 20:12:56 2361 14 8

参与讨论

每位数控操作员最终都会遇到报警和故障问题,但只要掌握快速排除方法,并非所有故障都会导致停机。本指南汇总了各大主流品牌数控系统的最常见报警,解释了报警含义,并提供了可在车间现场直接操作的实用解决方案。1. 发那科(Fanuc)数控系统 —— 常见报警报警代码含义解决方案300 报警 伺服报警 检查电源供应、轴驱动器、编码器反馈信号 414、417 X/Y/Z 轴伺服报警 重置伺服放大器,检查保险丝 086 报警 程序(P/S)报警 验证 G 代码 / M 代码的语法正确性 073 报警 刀具补偿值缺失 在 H 寄存器中设置刀具长度补偿值 2030 报警 超程 释放超程(OT)开关,使用超程取消键重置 2. 哈斯(Haas)数控系统 —— 常见故障报警含义排除方法100、103 气压过低 恢复车间气压至≥85 (psi) 108 紧急停止 重置急停(E-Stop)按钮,检查门互锁装置 165 主轴不转动 检查 M03/M04 指令(主轴正转 / 反转指令)、主轴驱动器 9115 润滑油不足 补充导轨润滑油箱,重置计数器 186 换刀机构卡滞 清除机械卡滞故障,重置换刀臂 3. 西门子(Siemens)辛姆森(Sinumerik)数控系统 —— 典型故障报警含义解决方案37010 数控系统(NC)未就绪 检查驱动器、可编程逻辑控制器(PLC)使能状态 28000 刀具数据缺失 加载刀具表数据 11900 通道未就绪 重置数控通道,重新启动程序 23000 超程 点动操作使轴返回至限位开关有效范围内 4. 海德汉(Heidenhain)数控系统 —— 错误信息错误信息含义排除方法编码器错误 位置反馈信号丢失 检查电缆,重新插拔连接器 PLC 报警 梯形图逻辑故障 查看 PLC 诊断界面 驱动器未就绪 轴未使能 重置驱动器,检查急停回路 5. 马扎克(Mazak)Smooth Control 系统 —— 常见问题报警含义解决方案221 主轴驱动器报警 过电流或过载 检查主轴电机、驱动器电流 218 换刀错误 刀塔或自动换刀装置(ATC)故障 检查刀套,重置自动换刀装置 401 伺服故障 轴驱动器过载 降低进给速度,检查润滑情况 6. 通用排除方法与预防措施检查参数:许多故障由参数损坏导致。检查电缆:编码器或输入 / 输出(I/O)线路松动可能引发随机报警。监控冷却液与润滑油:液位过低会触发互锁停机。电源重启:整机断电重启通常可清除瞬时故障。定期维护:每周清理切屑、更换过滤器、检查皮带。7. 快速故障排除专业技巧将设备手册和报警代码表放在控制面板旁,方便查阅。利用诊断界面(输入 / 输出状态、伺服负载、主轴负载)精准定位故障点。记录反复出现的报警 —— 此类情况可能暗示机械磨损或电气问题。培训操作员区分 “软超程” 与 “硬超程” 状态。8. 数控故障排除的未来发展人工智能驱动诊断 —— 控制器自动推荐可能的解决方案。远程支持仪表盘 —— 原始设备制造商(OEM)可通过安全连接远程排查故障。预测性故障预警 —— 设备在轴故障前数天发出预警。智能手册 —— 基于二维码的指南,扫描后可在平板上打开精准的故障排除步骤。

手机用户20200527DR8RJ8

2025-10-10 16:09:02 4832 3 0

参与讨论
CNC数据采集网关通过对广数CNC的数据采集并上传至MES系统实现线上监控的应用案例

最新内容

一、项目背景某精密部件有限公司是一家专业从事汽车发动机核心零部件生产的制造企业,随着智能制造升级需求日益迫切,企业原有生产管理模式逐渐暴露诸多问题。为解决这些问题,企业决定引入工业物联网技术,构建基于MES系统的生产监控平台,核心需求是实现CNC设备数据的实时采集与上传。经过多方选型,最终选择捷米特品牌的CNC310-WIFI-4G-JM201数据采集网关作为核心硬件设备。二、解决方案架构本项目采用设备层-采集层-平台层三层架构设计:1.设备层:32台广州数控设备,涵盖车床、铣床等类型,均具备RS485/RS232通讯接口,支持GSK专用通讯协议2.采集层:部署16台捷米特CNC310-WIFI-4G-JM201工业智能网关(每2台设备共享1台网关),通过屏蔽双绞线与设备建立物理连接3.平台层:基于云架构的MES系统,部署在企业私有云服务器,具备数据存储、分析、可视化功能捷米特CNC310-WIFI-4G-JM201物联网网关作为核心枢纽,承担三大关键功能:·协议转换:将广州数控设备的私有协议转换为标准ModbusTCP协议·数据处理:对采集的原始数据进行滤波、校验和格式转换·网络传输...

一、项目背景某精密部件有限公司是一家专业从事汽车发动机核心零部件生产的制造企业,随着智能制造升级需求日益迫切,企业原有生产管理模式逐渐暴露诸多问题。为解决这些问题,企业决定引入工业物联网技术,构建基于MES系统的生产监控平台,核心需求是实现CNC设备数据的实时采集与上传。经过多方选型,最终选择捷米特品牌的CNC310-WIFI-4G-JM201数据采集网关作为核心硬件设备。二、解决方案架构本项目采用设备层-采集层-平台层三层架构设计:1.设备层:32台广州数控设备,涵盖车床、铣床等类型,均具备RS485/RS232通讯接口,支持GSK专用通讯协议2.采集层:部署16台捷米特CNC310-WIFI-4G-JM201工业智能网关(每2台设备共享1台网关),通过屏蔽双绞线与设备建立物理连接3.平台层:基于云架构的MES系统,部署在企业私有云服务器,具备数据存储、分析、可视化功能捷米特CNC310-WIFI-4G-JM201物联网网关作为核心枢纽,承担三大关键功能:·协议转换:将广州数控设备的私有协议转换为标准ModbusTCP协议·数据处理:对采集的原始数据进行滤波、校验和格式转换·网络传输:通过车间局域网(WIFI)为主、4G网络为备份的双链路方式,采用HTTP协议将数据上传至MES系统三、实施过程前期准备1.设备兼容性测试:使用捷米特提供的测试工具,验证CNC310-WIFI-4G-JM201边缘计算网关与各型号广州数控设备的通讯兼容性,重点测试GSK980TDb的主轴转速、进给速度等28项关键参数的采集稳定性2.网络环境部署:在车间部署工业级WIFI6无线AP,覆盖所有设备区域,实测无线传输速率达866Mbps,latency50ms;同时为网关配置4G物联网卡,启用自动切换功能3.安装位置规划:根据设备布局图,确定网关安装位置,确保每台网关与连接设备的通讯距离不超过15米,避免信号衰减硬件部署1.网关安装:采用DIN导轨安装方式,将CNC310-WIFI-4G-JM201数据采集网关固定在设备旁的电气柜内,确保通风良好,环境温度控制在-10℃~60℃范围内2.通讯连接:使用带屏蔽层的RS485通讯线,一端连接广州数控设备的通讯接口,另一端接入网关的COM1端口,做好接地处理3.电源配置:采用24V直流电源为网关供电,通过UPS保障供电稳定性,避免突然断电导致的数据丢失软件配置1.网关参数配置:通过捷米特专用配置工具,完成基础设置:o设备通讯参数:波特率9600bps,数据位8位,停止位1位,校验方式Noneo采集频率:关键参数(如主轴状态、进给值)1秒/次,次要参数(如累计运行时间)60秒/次o网络参数:静态IP地址分配,子网掩码255.255.255.0,网关地址192.168.1.1oHTTP上传设置:服务器地址,上传间隔5秒,超时重试3次2.数据点配置:针对广州数控设备特性,在网关中配置128个数据采集点,主要包括:o状态类:设备运行/停止、自动/手动模式、报警状态等o工艺类:主轴转速、进给速度、当前刀具号、切削液状态等o绩效类:加工件数、累计运行时间、有效切削时间等3.MES接口开发:根据网关上传的数据格式,开发MES系统接收接口,采用格式进行数据交互,主要字段包括:设备编号、采集时间、参数ID、参数值、数据质量码等调试与优化1.单设备调试:逐台设备进行通讯测试,使用网关内置的诊断工具检查数据传输完整性,确保数据准确率达到100%2.压力测试:模拟16台网关同时上传数据的场景,持续24小时,验证MES服务器处理能力,峰值处理能力达300条/秒3.冗余测试:人为断开WIFI网络,验证4G备份链路的切换时间(实测3秒),确保数据不丢失4.优化调整:根据测试结果,将部分非关键参数的采集频率调整为120秒/次,降低网络带宽占用五、总结捷米特CNC310-WIFI-4G-JM201数据采集网关凭借其稳定的通讯性能、灵活的网络接入方式和强大的协议转换能力,成功解决了广州数控设备的数字化采集难题,为企业构建了从设备层到管理层的完整数据链路。该项目的实施不仅带来了直接的生产效益提升,更重要的是为企业后续的智能化升级奠定了数据基础。·(具体内容配置过程及其他相关咨询可联系杨工。)

捷米特工业物联网通讯

2025-10-09 15:55:26 588 0 0

参与讨论
祝论坛内外的老师中秋快乐

最新内容

中秋假期结束,开始搬砖

论坛是大家畅所欲言的家园。论坛是论而求其真的地方,也是求知而所得的地方。祝论坛内外的老师中秋快乐。论而其欢,论而其得。

为修修为

2025-10-06 21:06:55 887 8 2

参与讨论
【工作笔记】看找答案问题后的联想

最新内容

学习学习...

国庆节小长假,待着没事上论坛来,浏览到一个找答案问题。驻足:链接:西门子S120变频器,模拟量调节通道,无法调速这个问题放在找答案,那回复描述起来可就很麻烦了。而放在论坛里讨论,这个问题或许有解。无独有偶,就在节前,我调试一台G120的传动控制系统,遇到和找答案提问者相同的问题。当时自己也有点懵。但是,借助STARTER在线的监控功能,没费劲就锁定问题了。我的问题,当变频器只给启动和使能,设定值还是0时,电机转速就开始启动加速,直至最高转速。我赶紧停止。查看了一下转速设定值,确实是0。于是又启动了一次变频器,电机还是从0直至加速到最高转速。在场围观的人也都很奇怪。这是咋了?于是,在线状态STARTER,并激活结构监控按钮:点击速调快捷键并监控系统运行状态。确实显示转速设定值通道过来的监控值是0rpm,而反馈通道过来的监控值是最高转速rpm。接着向右查:在限幅结构监控环节。锁定问题。因为发现,正限幅值和负限幅值都是正的100%额定转矩。停车后,将负限幅值的100%N.m前面加了一个符号。问题迎刃而解。所以,凡是这种莫名其妙的问题,只要用STARTER在线下,监控一下这个系统结构的快捷键,什么状态一查便知。像这种已启动,还没给转速设定值就直接加速至最高转速的问题,大概率是出在限幅参数设定的环节。我的问题是负转矩设置有误。而除了这,转速的正负限幅设的不对,也会出现类似问题。假如是转速限幅,那就按上图1向左查。以转速调节器为中心节点监控,左右查问题,分分钟搞定。个见,仅供参考。

kdrjl

2025-10-05 17:10:49 831 2 4

参与讨论
国庆大家伙都不加班吗?

最新内容

休息了感觉比不上班还没有意思 !天天下雨都不知道干什么?

论坛今天好安静,不太适应。。。

chenyili

2025-10-01 23:08:19 1916 19 4

参与讨论
电机铭牌数据与G120快速调试

最新内容

要去看教科书,不要看网上的乱象信息。看电拖,看电机学里的基本公式。电机输出功率 = 根号3 *电机线电压 *电机线电流 *功率因数 *电机效率这个公式指的是交流异步电机电机输出的有功功率。

最近,调试一台G120的设备。做完了快速调试流程的离线参数设置。再下载到装置,结果被锁住了。不允许进行自动计算和静态辨识。搞得一头雾水。以往的调试,没被这样锁住过。一看BOP面板上有F保护动作了。F7850_是电机参数有错误。反复查看设置的参数,和铭牌数据是一样的,没错。可实际就是报错,不允许下一步。电机铭牌数据:上图就是电机铭牌。因为系统总是提示电机参数错误。那么好,就把这个铭牌参数代入电机功率平衡方程式:功率(W) = 根号3 * 电压 * 电流 * 功率因数 * 效率计算结果,等式成立的效率值大于1了。喔趣,这可能吗?于是那功率因数参数设置为0.89,其它参数不变。快速调试顺利完成。由此,西家传动也是绝了。居然能发现电机铭牌数据参数的隐形错误输入。很有感想。

kdrjl

2025-10-01 10:47:09 2791 24 3

参与讨论
Toolbox DVD 828D V04_07_02_01;国庆中秋双节快乐!

最新内容

老板给分享一下createRun My Virtual Machine行吗?184687436@qq.com或微信Babys850921,非常感谢

应坛友要求,再次上传828工具软件,有需要的尽快下载!链接:https://pan.baidu.com/s/145js3zCmMEkQ-suis9LbEg?pwd=ueuj提取码:ueuj; 坛友们,国庆中秋双节至,愿大家团圆美满,幸福安康,节日快乐!诚挚祝福!

隐身人

2025-09-30 20:25:35 2843 17 3

参与讨论
精华
【实用FC系列】之二,SizeOf 统计数据的大小

最新内容

学习了,感谢分享

很多控制器都有SizeOf这个功能。作用就是统计数据占用的字节数量。但是1X00控制器的标准库和指令中没有这个功能。可是我的一些项目中,尤其与通讯有关的项目需要这个功能,为此我开发了这个FC。我们先看看这个FC的外特性。图 1图1 是在main中4次调用了SizeOf函数。可以统计出一个数据结构所占用的字节数量。下面要说4个问题。1,我们注意到data占用8个字节,但是在data这个结构体中的所有数据占用字节总和是6个。这是我们需要注意的问题。2,如果同业觉得有帮助的话, 我会把SizeOf的代码分享出来。3,对于bool类型的数组。不同CPU占用的字节数不同。比如X86系列CPU以及1500优化块,每个bool类型占用一个字节。对于非优化块,每个bool类型占用一个bit。Sizeof采用非优化块标准,即使data数据是优化数据也如此。4,对于bool类型的结构,占用word的整数倍。这是从下图得到的结论。5,好像结论有些复杂。没关系,我们无需记忆这些规则。需要的时候用SIZEOF测量一下就可以了。这就是FC:“SIZEOF”存在的意义。6,如果有问题,我们可以在此发帖讨论。如果觉得有用,请点赞,点关注。

yang9188

2025-09-30 10:08:42 4896 21 9

参与讨论
博图V20 安装hsp 报错

最新内容

有用,管理员权限运行可行

最近遇到V20安装HSP报图中的错误,以前V17-V19都没遇到过,经过尝试右键管理员权限打开博图再安装后可以解决

斌德瑞

2025-09-25 11:10:55 833 1 0

参与讨论
精华
【实用FC系列】之一,数字转换为字符串

最新内容

写的太好了,尤其是提供了使用场景,虽然现在没有需求,但是以后需要用到就可以直接使用。

今天有时间,开辟一个新系列--“实用FC”。这个系列给出一些比较通用的功能。这些通用的功能可能在很多项目中都就用到。比如今天给的是“数字转换为字符”。数字可以是任意值类型。比如int,real等。FC的功能是把值转换为字符串。我的很多项目都会用到这个FC,应该是bug-free的。下图是使用该块的例子。程序如下FUNCTION SECS_STD_Val2Str : Void{ S7_Optimized_Access := TRUE }VERSION : 0.1 VAR_INPUT Value : Variant; END_VAR VAR_OUTPUT FaultCode : Int; END_VAR VAR_IN_OUT Str : String; END_VAR VAR_TEMP IsFloatType : Bool; Size : USInt; tempStr : String[30]; Value_Sint : SInt; Value_Int : Int; Value_Dint : DInt; Value_Byte : Byte; Value_USint : USInt; Value_Word : Word; Value_UInt : UInt; Value_DWord : DWord; Value_UDint : UDInt; Value_Real : Real; Value_Lreal : LReal; Len : Int; END_VARBEGIN REGION converter TO str #IsFloatType := FALSE; #FaultCode := 0; #Size := 30; #tempStr := ; CASE TypeOfElements(#Value) OF SInt: VariantGet(SRC := #Value, DST = #Value_Sint); VAL_STRG(IN := #Value_Sint, SIZE := #Size, PREC := 0, FORMAT := W#16#0000, P := 1, OUT = #tempStr); Int: VariantGet(SRC := #Value, DST = #Value_Int); VAL_STRG(IN := #Value_Int, SIZE := #Size, PREC := 0, FORMAT := W#16#0000, P := 1, OUT = #tempStr); DInt: VariantGet(SRC := #Value, DST = #Value_Dint); VAL_STRG(IN := #Value_Dint, SIZE := #Size, PREC := 0, FORMAT := W#16#0000, P := 1, OUT = #tempStr); Byte: VariantGet(SRC := #Value, DST = #Value_Byte); #Value_USint := #Value_Byte; VAL_STRG(IN := #Value_USint, SIZE := #Size, PREC := 0, FORMAT := W#16#0000, P := 1, OUT = #tempStr); USInt: VariantGet(SRC := #Value, DST = #Value_USint); VAL_STRG(IN := #Value_USint, SIZE := #Size, PREC := 0, FORMAT := W#16#0000, P := 1, OUT = #tempStr); Word: VariantGet(SRC := #Value, DST = #Value_Word); #Value_UInt := #Value_Word; VAL_STRG(IN := #Value_UInt, SIZE := #Size, PREC := 0, FORMAT := W#16#0000, P := 1, OUT = #tempStr); UInt: VariantGet(SRC := #Value, DST = #Value_UInt); VAL_STRG(IN := #Value_UInt, SIZE := #Size, PREC := 0, FORMAT := W#16#0000, P := 1, OUT = #tempStr); DWord: VariantGet(SRC := #Value, DST = #Value_DWord); #Value_UDint := #Value_DWord; VAL_STRG(IN := #Value_UDint, SIZE := #Size, PREC := 0, FORMAT := W#16#0000, P := 1, OUT = #tempStr); UDInt: VariantGet(SRC := #Value, DST = #Value_UDint); VAL_STRG(IN := #Value_UDint, SIZE := #Size, PREC := 0, FORMAT := W#16#0000, P := 1, OUT = #tempStr); Real: #IsFloatType := TRUE; VariantGet(SRC := #Value, DST = #Value_Real); VAL_STRG(IN := #Value_Real, SIZE := #Size, PREC := 6, FORMAT := W#16#0000, P := 1, OUT = #tempStr); LReal: #IsFloatType := TRUE; VariantGet(SRC := #Value, DST = #Value_Lreal); VAL_STRG(IN := #Value_Lreal, SIZE := #Size, PREC := 15, FORMAT := W#16#0000, P := 1, OUT = #tempStr); ELSE // other data type #FaultCode := 01; RETURN; END_CASE; IF ENO = FALSE THEN #FaultCode := 02; //str too short OR Size too small RETURN; END_IF; END_REGION REGION del space in front WHILE #tempStr[1] = CHAR# DO #tempStr := DELETE(IN := #tempStr, L := 1, P := 1); END_WHILE; //#tempStr := CONCAT(IN1 := , IN2 := #tempStr); END_REGION REGION del 0 in tail IF #IsFloatType THEN #Len := LEN(#tempStr); WHILE #tempStr[#Len] = CHAR#0 DO #tempStr := DELETE(IN := #tempStr, L := 1, P := #Len); #Len := LEN(#tempStr); END_WHILE; IF #tempStr[#Len] = CHAR#. THEN #tempStr := CONCAT(IN1 := #tempStr, IN2 := 0); END_IF; END_IF; END_REGION #Str := ; #Str := #tempStr; END_FUNCTION本FC中用到了VARIANT类型。这个类型是非常好用的类型,可以大大简化复杂项目中PLC软件的结构。如果各位同行觉得本篇有帮助,请点击“有帮助”。非常感谢。如果希望探讨其他领域的有关主题,也可以给我留言。

yang9188

2025-09-23 10:07:06 4356 15 18

参与讨论
关于RFID 1070R 刷卡登录的坑, 如何登录后可以控制HMI 用户注销后不能控制HMI

最新内容

前期 我看了官方的给的视频和软件,自己一通的捯饬。结果是没结果,以失败告终。经过仔细的研究官方给的脚本,最后我给我搞出来了 。下面是我的调试过程。①先下载官方提供的脚本,和变量。补充好脚本内使用的变量。并在脚本和变量表中增加一个BOOL的变量,当用户有授权登录的情况下触发新增的变量为一, 然后用这个变量去控制你的程序②新建计划任务将用户变更时触发另一个叫脚本,此叫脚本时当用户变更时检查用户是否在线,如果不在线,就把变量表中的新增变量置0.通过这个方法就可以实现刷卡登录后可以控制HMI,用户登录注销后 不可以控制HMI

前期 我看了官方的给的视频和软件,自己一通的捯饬。结果是没结果,以失败告终。经过仔细的研究官方给的脚本,最后我给我搞出来了 。下面是我的调试过程。①先下载官方提供的脚本,和变量。补充好脚本内使用的变量。并在脚本和变量表中增加一个BOOL的变量,当用户有授权登录的情况下触发新增的变量为一, 然后用这个变量去控制你的程序②新建计划任务将用户变更时触发另一个叫脚本,此叫脚本时当用户变更时检查用户是否在线,如果不在线,就把变量表中的新增变量置0.通过这个方法就可以实现刷卡登录后可以控制HMI,用户登录注销后 不可以控制HMI

xiao5019272

2025-09-22 22:49:10 528 0 0

参与讨论
抽奖是真的吗?

最新内容

官方活动是真的哦

各位侠士:今天晚上,我看到小铃铛处有红色的消息提示,打开后,有送积分的活动,好像是还有一个抽奖。我就点击进去,结果一下子就抽中了电脑公文包。我真是不敢相信自己的双眼。。。想必是,很多大侠已经早就有这方面的经验了吧?指点一下,这是真的电脑公文包吗?还让我填写收货地址。这是电脑公文包实物吗?不是虚拟的东东吗?我填写真实的自己家的收货地址,会有什么后果产生?真有东西寄来吗?会收费吗?

CHEN-SUNSHINE

2025-09-19 20:33:39 3209 27 5

参与讨论
【PLC实操技巧】-- 浅谈在博图环境下用面向对象(OOP)的思路实现复杂的PLC软件

最新内容

用了3年时间开发SECS系统软件。软件是收费的。但是里面的核心编程方法在本篇中都讲到了。有关编程方法我们可以讨论。有关OOP编程,在我的另外博客中有更详细的讨论。

1. 前言当前的PLC处理能力和通讯能力已经得到长足发展,PLC也可以完成一些复杂的任务,比如轻型的IT任务。SECS系统软件就是在轻型的IT软件。这个软件需要在PLC中得以实现。 传统意义上的PLC编程方式是以结构化编程方式为主。用结构化编程思路完成非常复杂的任务显得有些力不从心甚至会带来混乱和编程的灾难。本篇以SECS系统通讯软件为媒介,探讨在1500环境下用面向对象的思路(OOP)实现复杂的编程任务。SECS通讯软件是生产设备与工厂IT系统的通讯接口。这个通讯接口可以完成生产设备与工厂IT系统之间的数据传输。通过这些数据传递实现生产数据上传、数据跟踪、设备远程控制、设备参数设定、设备模式管理、设备物料管理、配置报告、事件收集、终端服务等任务。由于其强大的功能,SECS通讯已经长期和广泛的应用在半导体生产领域。伴随着半导体的生产收集了大量的数据,并在这些数据分析的基础上改进半导体生产工艺从而提升半导体良品率和探索更先进的生产制成。可以讲没有SECS通讯就没有当前半导体行业的蓬勃发展。SECS通讯在半导体行业的成功使得它拓展了应用范围,现在更多的生产制造领域也使用SECS通讯。SECS通讯的功能强大也带来一个问题,就是SECS通讯软件编程比较复杂。传统实现SECS通讯的方法是在工控机上利用面向对象的语言进行编程。众所周知面向对象的编程可以解决更复杂的编程问题,因此SECS软件在面向对象的编程环境下显得容易一些。能不能用PLC实现SECS通讯系统软件呢?笔者尝试用西门子1500PLC实现SECS通讯系统软件。博途环境的1500编程从根本上来讲是结构化的编程环境。如何利用这个编程环境实现复杂的SECS通讯软件的功能是一项挑战。本文要探索的是在1500PLC编程的环境下,在一些关键编程点上用面向对象的编程思路进行编程,从而使本来复杂的编程得到简化。2 厘清概念2.1 面向对象的编程思路所有面向对象的编程思路都需要首先创建类。在类中有一些数据、有一些方法(在PLC中方法称为程序块)。类的方法对类的数据进行操作。类创建完毕就可以以类为模板创建实例这就是对象。每个被创建的对象包括类的非共性数据和类的共性方法。面向对象的编程方法有3个特点:封装、继承、多态。这些内容在下文中都有所述及。2.2什么可以作为对象在PLC程序中,哪些被控对象可以作为面向对象编程中的对象呢?一个典型的面向对象的程序语言JAVA认为:万物皆可对象。不过就我的经历看,在PLC程序中可以抽象为对象的有几个共同的特点:1,需要多个输入或者输出点位来涵盖这个对象或者有多个传感器、执行器组成,总之需要抽象为对象的不是简单的事物。2,对象的各个构成元素共同完成一个控制目的。3,在一个PLC程序中,对象有相同的控制方法,并且可以抽象为同一类型对象的被控对象很多。简单几个例子进行说明:1,开度可调节的阀门由模拟量输入、模拟量输出组成;这些输入输出共同完成对阀门的控制。在一个化工装置中,这样相同的阀门有几十上百个,它们有相同的控制方式。这个位置阀门可以看作是一个对象。2,一个PID控制器也可以看作是一个对象。因为它有输入、输出、PID参数等多个元素组成。PID算法相同,并且在一个PLC程序中可以使用多个PID控制。3,机场行李输送系统的一条皮带可以看作一个对象。皮带由变频器,物料传感器,组合灯组成,这些要素共同完成对皮带的启停控制,并且这样的皮带在一个项目中可以多达上百条。4,汽车组装线上一个车架提升机构也是一个对象。提升机构由变频器、极限位置传感器组成,这些设施共同完成车架提升这一功能。在几百米的组装线上,相同功能的提升机构不止一个。5,通讯的对话也可以看作一个对象。对话由发起方消息和回复方消息组成,他们共同构成通讯中一个对话。这个对话实现一个通讯目的。SECS通讯软件都是由几十个上百个这样的对话组成。6,在伺服控制中,一个速度轴或者位置轴也可以看作一个对象2.3 继承性 OOP中还有一个问题是继承性。举几个例子:1,假定已经为一个位置阀门和PID开发并测试好各自的程序,并各自封装为一个类(FB)。一个新的需求产生:由位置阀门自动控制罐体液位。那么可以用已经开发好的2个工艺对象组合在一起再增加一些新内容就是一个新的更大的对象。这个新的更大的对象可以讲继承了2个小对象的所有内容。2,位置轴包括速度轴的所有功能,那么位置轴就可以继承速度轴的内容。3,已经开发好一个通讯对话程序。再开发一个通讯会话程序。这个会话是由若干对话组成。开发会话程序时就可以继承对话程序中的所有内容。4,还是对话的例子。SECS通讯软件包括上百个对话。每个对话都有各自不同的内容和功能。如果把每个功能视为一个对象。那么这个对象中就可以视作继承了对话对象的全部内容。通过几个例子可以对继承性有一个新理解:所谓继承就是大功能(子类)继承了小功能(父类)的所有内容。一些高级语言不支持多重继承,但是在PLC中不必要担心这个问题。因为继承性是编程者的思想,不会受到编程环境的约束。在SECS通讯系统软件中,一些对象有多达5层的继承。3. 1500PLC实现面向对象的方法如何用西门子PLC中实现面向对象的编程?本章要讨论2种常见的模式。一个是FB+IDB,另一个实现模式是FC+PLC数据类型。3.1 西门子PLC编程的历史沿革谈到在西门子PLC中实现面向对象的编程方法就不得不谈到PLC编程的历史演变。从DOS操作系统的STEP5软件对S5 PLC进行编程到WINDOWS操作系统的STEP7软件对S7-300/400进行编程,再到当今博途环境的1500PLC。这几十年发展的足迹清晰,方向可辨。笔者曾经在西门子公司参与到为奔驰汽车整车组装线编写PLC程序标准。这套程序标准有面向对象的思路。虽然当时用的是S7-400的PLC,但是显然这套程序是来自于S5的程序。因为这套程序没有使用如今流行的“功能块(FB)+背景数据块(IDB)”的方式,而是用“功能(FC)+全局数据块(gDB)”的方式去实现“FB+IDB”的功能。“FB+IDB”是一种面向对象的实现模式,下面就从“FB+IDB”说起。3.2 FB+IDB上文提及类或者对象是由封装好的“数据+方法”组成。FB+IDB具备了这3个要素:封装、数据、方法(函数或者功能)。定义好一个FB后,只要根据这个FB生成不同的IDB就可以处理不同的对象。比如化工装置的位置阀门,就可以用一个FB中的程序处理,如果一个项目有100个阀门,要生成100个IDB,每个IDB对应一个物理阀门。这些阀门的运行不会因为使用同一个FB而互相干扰。FB+IDB可以实现面向对象的编程思路。这种模式有一个优点就是数据和方法封装在一个FB内,但是这种模式有一个局限就是类中的方法只有1个,就是这个FB本身。如果程序需要一个对象中有多个方法怎么办?这就需要另一种面向对象的编程模式:FC+PLC数据类型。3.3 FC+PLC数据类型SECS通讯中本机需要回复主机的消息。因此可以把回复主机消息看作一个对象。在回复消息之前需要对本对象初始化,这需要一段程序,可以封装在一个FC当中,这个FC命名为SECS_R_Begin。在消息内容生成完毕后,还需要发送生成好的消息,那么此时需要对象具备发送消息的能力,这个功能可以封装在另外一个FC中命名为SECS_R_End。那么这个对象就具备了2个方法:初始化方法和发送方法。对象中有了方法,还需要数据。数据模板来自PLC数据类型。需要创建一个合适的数据类型(SECS_R_Class)供以上2个方法使用。 同时在2个方法的INOUT区域声明创建的PLC数据类型。在给2个方法编程时,自然会用到INOUT区声明的SECS_R_Class类型。实际上这就实现了:对象的方法对对象的数据进行操作。 对象实例数据可以在FB的静态区定义,也可以在全局数据块中定义。这2个区域都是静态区域。下面2图分别在gDB和IDB创建的对象。如果对象的存活时间不会跨越PLC周期,对象数据也可以在临时区声明。 在调用2个方法填写数据INOUT引脚时,同一个对象一定要使用相同的数据实例。 以上就是FC+PLC数据类型的实现面向对象的编程方法。相对于FB+IDB方法,FC+PLC数据类型的方法更灵活。缺点是对象的要素没有封装在一起,方法和方法之间以及方法和PLC数据类型之间都是在博途的不同位置定义的,定义过于分散,我们只能在编程文档中将这些要素虚拟的封装在一起。当然V17以后的博途增加了软件单元的功能。我们可以把一个类封装在一个软件单元中。但是用这种办法进行封装,如果类过多,也会造成困扰,况且这也不是软件单元的主要用法。3.4 继承的实现方法针对以上2种面向对象编程的实现模式,继承也有不同的实现模式。3.4.1 在FB静态区如果把一个FB看作一个类,可以在它的静态区通过2种方法实现继承。举例,下图是FB,SECS_RPT_RPT_R的静态区,功能块的功能是通过回复消息向主机回复一个报告。1,在FB静态区声明PLC数据类型回复报告的功能是需要继承回复消息的功能。因此可以在静态区声明SECS_R_Class,也就是继承了SECS_R_Class类在功能块SECS_RPT_RPT_R中可以调用SECS_R_Class子类的方法以实现一定功能和目的。 2,通过多重背景数据块继承了内部FB内容。在静态区声明了一个多重背景“EXE”。EXE的功能是控制所调用FB的流程。在SECS软件中的所有功能性FB都会调用此EXE,因此EXE可以视为一个类。同样可以在功能块SECS_RPT_RPT_R中调用EXE方法。3.4.2 在PLC数据类型中上文述及一个SECS会话包括若干个对话。把对话视作对象,会话类可以继承对话的内容。下图中关注2个数据类型:SECS_I_Class、SECS_I_Class_w_Pre。SECS_I_Class是一种对话类,SECS_I_Class_w_Pre是一种会话类。通过将对话类数据类型声明在会话类中,会话类实现了对话类的继承。3.5 多态的的实现方法1500PLC有2个非常卓越的数据类型:Variant类型和Ref类型。有了这2个数据类型,在1500PLC中实现多态就易如反掌。用Variant类型定义的形式参数,在填写实际参数时可以是任意类型。Ref引用类型可以指向Variant引脚的填写的任意类型。用2个例子说明。例1:数字转换为字符串在通讯中经常需要用到数字转换为ASIIC码字符串。FC:SECS_STD_Val2Str用于实现这个的功能。该功能的引脚Value用于数值输入,类型是Variant。 如果没有Variant类型,那么需要针对每种数字类型(8种整形和2个浮点类型)都要编写一个功能。有了Variant类型可以将这10种类型的程序封装在一个功能中,优化了软件的结构。例2:在SECS通讯中,需要向主机传输状态值(SV),而状态值的类型是不确定的。下图功能SECS_SV_Value的SVn引脚都是Variant类型。在PLC范围内任意拖拽一个变量到SVn引脚处即可完成状态值的定义。如果没有Variant类型,状态值的定义将是一项极其繁杂的工作。3.6 其他虽然1500PLC可以动态创建数据块,但是到目前为止,还无法动态根据数据类型创建对象(数据块)。也许在未来的博图版本中这个功能会开放出来。4 结束语当我们遇到复杂的编程问题(比如SECS系统软件的编程工作)时,总是希望降低编程的难度。既然面向对象的编程可以降低编程的难度,那么我们在考虑复杂问题编程时可以借鉴面向对象的编程思想规划程序。然后运用上述的几种模式,在博途这种结构化的编程环境下实现面向对象的编程。在1500PLC中实现SECS系统软件编程的工作就是在这样的指导思想下完成的。幸运的是博途的编程环境以及提供的素材是可以实现面向对象的编程思想。通过测试发现运行在1500PLC中的SECS系统软件具有优异的性能。压力测试小于50ms,其他性能:也满足SECS标准的要求。各位同行朋友们,您对PLC实现IT任务有什么看法,也请在此发表高见。如果您觉得本篇有帮助,请点击下方“有帮助”。您的肯定是我分享动力。

yang9188

2025-09-19 09:57:09 1259 2 2

参与讨论
【PLC实操技巧】-- PLC完成轻IT任务

最新内容

谢谢留言。有关SECS的内容,可以参见这个帖。https://www.ad.siemens.com.cn/club/bbs/post_1951670_66_0_0.html#anch

PLC实现轻IT任务2025.091. 前言随着PLC处理能力和通讯能力得到长足发展,PLC也可以完成一些前辈们不可能完成的工作,比如轻型IT的任务。 2. 什么是轻IT任务SECS通讯软件就是典型的轻IT任务。 SECS通讯由美国国家半导体产业协会(SEMI)制定。几十年来SEMI发布了众多通讯协议文件,这些协议文件组成了体系完整的协议族,称为SECS协议。SECS协议跨越了从RS232时代到工业以太网时代。SECS通讯软件运行在生产设备端,是生产设备与工厂IT系统的一种通讯接口。这个通讯接口可以完成生产设备与工厂IT系统之间的数据传输。通过这些数据传递实现生产数据上传、数据跟踪、设备远程控制、设备参数设定、设备模式管理、设备物料管理、配置报告、事件收集、终端服务等功能。由于其强大的功能,SECS通讯已经长期和广泛的应用在半导体生产领域。伴随着半导体的生产收集了大量的数据,并在这些数据分析的基础上改进半导体生产工艺从而提升半导体良品率和探索更先进的生产制成。可以讲没有SECS通讯就没有当前半导体行业的蓬勃发展。SECS通讯在半导体行业的成功激励了更多行业使用SECS通讯助力工厂数字化转型。SECS通讯的功能强大和复杂性自然带来一个问题,就是SECS通讯软件编程比较复杂。传统实现SECS通讯的方法是在工控机上使用高级语言进行软件开发。不过这又带来新问题,负责SECS通讯的SECS计算机与负责控制生成设备的PLC之间必然产生或多或少的脱节,这就不能完成SECS通讯的系统软件,只能完成SECS通讯的应用软件。能不能用PLC实现SECS通讯的设备端系统软件呢?这样做带来的好处是可以将控制设备的任务与SECS通讯的任务进行无缝衔接。笔者尝试在博途环境下用1500的高级语言SCL编写完成SECS系统软件的开发。效果很好,由此我联想到现在的高性能PLC都可以完成类似SECS通讯这样的轻型IT任务。3. 主旨之前有一篇专门介绍SECS通讯的文档。那篇文档围绕着实现SECS系统通讯展开讨论。在SECS系统软件项目中,编程总计上万行文本代码,从这些代码中得取一些经验具有普遍性,本篇侧重将PLC实现轻IT任务的普遍性进行讨论。4. 文本语言与梯形图现在的PLC都有文本编程语言,比如SCL语言。这是一种高级语言,具有现代编程语言的全部特征。PLC实现轻IT任务主要靠文本语言。这是因为IT任务大多具有触发才执行的特性。而传统的LAD语言的特性是始终执行。文本语言可以满足触发执行的特点。5. 日志功能IT软件调试是一个困难的工作,难在一些状态的变化只在毫秒级别,很难观察到。为了方便分析问题,软件需要日志功能,记录IT系统软件在瞬间都接收到了什么消息,发送了什么消息,软件自身都做了什么。有了日志功能方便分析问题,查找问题,解决问题。上图是SECS系统软件项目中的一个日志片段,记录了从23秒114毫秒到639毫秒跨越500ms的日志。PLC在500毫秒内发送和接收了7次消息对,更新了3次SECS变量。从日志中分析出PLC做出的每个动作都是正确的,符合SECS通讯协议。这里简单介绍日志代码的执行步骤:首先,将软件各个模块发送到日志池中的日志进行暂存。然后加入时间等信息作为存入日志池中的信息。第二步,将之前的信息向后挪移一个日志单位,将最新的日志信息存入日志池中的最新的位置。从程序处理的方法上看,日志是一个典型的FIFO队列。日志功能的代码也是一个典型的事件触发的代码。大多数时间段不会触发这段代码,只有当需要记录日志时刻才执行这段代码。这也是IT任务的一个重要特征。6. IT任务的增、删、改、查功能轻IT任务也是IT任务,那么任务中就避免不了对数据条目的“增、删、改、查”的功能。在SECS系统软件中,用到的增删改查的功能比较多,这里简单介绍数据追踪功能中的增删改查。厂级IT系统向本机下发数据追踪的请求。请求中包含了数据追踪的必要信息:数据量、发送频率、发送数量等信息。本机收到该信息后,就在PLC中生成了一条数据追踪条目。该条目还可以由厂级IT系统更改、删除。在执行完该追踪条目后由本机自行删除。实现这样的功能离不开数组,也离不开遍历数组这样的代码。FOR循环语句是实现遍历数组功能的必然的选择。7. IEC Timer的使用SCL编程中的IEC定时器的使用习惯与LAD中IEC定时器的使用习惯不同。在IT任务中,由于SCL代码大多数时段并不运行。但是在LAD语言中,通常情况,代码是始终运行的,那么每个扫描周期都可以扫描IEC定时器。但是在SCL中,并不是每个周期都扫描到IEC定时器。如何解决呢?我们无需担心。博图在1500和1200中对定时器的扫描机制做了调整。在300/400时代,程序只有在执行调用定时器语句时才会刷新定时器的时间。但在1X00时代,将这个刷新机制做了调整,PLC的编译系统会在访问定时器任意对象的代码位置隐性插入刷新定时器的时间的代码。这种刷新机制对于在SCL语言中使用定时器特别友好,也可以说是为了专门适配SCL语言而做改动。8. VARIANT类型IT任务中经常用到VARIANT类型,比如在SECS系统软件中需要定义一些变量,下图是定义EC变量的例子 块中的EC引脚数据类型是VARIANT类型。这个类型的好处是可以将任意类型拖拽到EC引脚。在块内,通过程序分辨EC引脚的变量类型,并根据分辨出的不同类型进行不同的处理。这一套处理方式已经成为了处理VARIANT类型变量的定式。9. SCL块的ENO如果SCL块的ENO设为自动,那么所调用的语句或者运算如果出现异常,该处的ENO会被操作系统设置为0。在用LAD语言或者SCL语言编写的程序块中,可以在块的结尾处通过SCL语句控制程序块的ENO。比如:ENO := TRUE; 或者ENO := FALSE;10. 递归算法IT任务中可能用到递归算法,比如SECS通讯中的数据是有层级结构的,SECS系统软件需要检查收到的SECS数据。SECS中的数据格式不是SECS协议规定死的。这就带来一个问题,以何为依据进行检查?SECS协议规定上一级数据必须包含本层级数据的数量的信息。检查算法就以此为依据。但是SECS协议中包含多达上百种消息,每一种消息结构都不一样,即使同一个消息,数据结构也可能不一样的。因此无法用普通算法实现对SECS数据的检查功能。SECS数据的层级结构类似于套娃,拨开一层数据后才知道下一层数据结构。为此只能用递归算法实现SECS数据的检查功能。好在SCL语言以及博图环境支持递归算法。递归算法中要注意嵌套的深度不要超过PLC允许的最大嵌套深度。11. 分解复杂的IT任务到多个扫描周期PLC执行IT任务特别需要注意一点。不能使得PLC扫描周期过长。如果执行某个任务需要若干秒的时间,那么这是不可接受的。这是由于PLC还要完成对设备的控制任务。设备控制任务的扫描周期不宜超过几十毫秒。为此,必须巧妙的将需要花费长时间运行的IT任务分解到多个扫描周期中。SCL语言可以通过多种流程控制语句较容易的实现这一点。12. 面向对象的思想虽然当前博图编程PLC是结构化环境,但是既然STEP7中有FB的存在,就事实上有面向对象的编程基因。另外,UDT类型+程序块的IN-OUT引脚完成的是对数据指针的传递。有这2样法宝,在博图环境下实现一些简单的面向对象的编程是不难的。IT任务中应该从一开始就用面向对象的思路进行编程。这样做的好处是把一些复杂的问题简单化,让思路更清晰。如果未来博图对PLC的编程能把函数指针开放,那么会带来更大的编程灵活性。13. 结束语工业自动化领域发展到当今的水平,智能制造方兴未艾,PLC承担轻IT任务必然成为趋势。SECS系统软件的开发工作证明在博图环境下完全能支撑在PLC中实现开发轻IT任务,并且轻IT任务可以与设备的控制任务实现完美无缝衔接。本文基于半导体设备通信标准(SECS)系统软件开发实践,抽取项目开发过程中的一些内容,针对PLC实习轻IT任务进行了经验分享与总结。文中所述观点及实践方法可能存在疏漏,恳请业界同仁不吝指正。各位亲爱的同行,您对PLC实现IT任务有什么看法,也请在此发表高见。如果您觉得本篇有帮助,请点击下方“有帮助”。您的肯定是我分享动力。

yang9188

2025-09-18 13:30:11 1502 3 1

参与讨论

S120是没有实时时钟的,要想让S120的时钟与现实时间对应起来 要么自己根据运行计时器推算 或者利用AOP30进行时钟同步,然而自己推算终究是需要计算的虽然没多么复杂 但总归不太爽,AOP30又需要额外付费购买,那么剩下一个比较好的办法就是使用NTP时钟同步了。对于一个小型自动化网络 可能只有简单的PLC作为上位机,没有工控机来做时钟同步,而PLC是有实时时钟的 虽然断电后仅能维持六周 单对于大多数使用场景来说足够了 PLC的时间设置也是多种多样 可以通过程序修改 也可通过博途或者维护工具修改 那么S120就可以利用PLC做时钟同步服务器 1200 1500PLC默认是无法支持时钟同步服务器功能的 需要自己编程 当然官方也有库可以调用 在此仅介绍S120中的配置配置方法非常简单 如下所示设置CU中的几个参数即可具体的效果就如下所示

无名的人

2025-09-16 14:50:47 2159 11 3

参与讨论
得到了论坛金币

最新内容

西家活动相当给力

前几天,加强了学习,在本站论坛咨询问题;学习的乐趣也很多,突然奖励了好多金币。再仔细一看,金币竟然是美元的标志。有没有人民币的金币呢?

CHEN-SUNSHINE

2025-09-15 10:15:04 1934 8 1

参与讨论
4204篇主题

热门标签

相关推荐

top
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。