随笔分类 - 西门子工业自动化
摘要:现场一套除尘设备停机检修,理论上电流应该为0,但后台是不是会有0.02左右小电流显示出来,生产车间总觉得不行。我去做了PLC程序修改,添加风机不运行,那么电流为0.0A得程序段。但后台还是有小电流显示出来,后来把原有的模拟量转实际工程量纲得程序前面加上风机运行才转换得条件,后台就不再有小信号显示出来
阅读全文
摘要:现场有一套CEMS,数采仪使用的是北京万维盈创产品,需要和中控室西门子S7 1200PLC通讯,考虑到通讯协议兼容性,使用modbusTCP协议。数采仪IP地址设置成192.168.0.130,这是网络中没有其他设备使用的IP地址,万维盈创数采仪通讯协议和IP地址设置方法参考下面的链接,其他厂家数采
阅读全文
摘要:今天做一个小的练习,这是2025年第一个记录的学习笔记。 在IA新建一个FC,名字叫做TrimSpace,建立以下内部变量: 写一段SCL代码: #len := LEN(#str_in);#str_trim_out := '';FOR #i := 1 TO #len DO IF MID(IN :=
阅读全文
摘要:今天做一个小的练习,在TIA环境下生成6位随机临时验证码。整体思路还是读取CPU系统时钟的纳秒数值,转换成字符串 新建TIA项目,选择1500CPU. 新建DB1全局数据块,建立下面的变量,属性中取消优化的数据块。 在OB1里面写下面的程序 新建WINCC项目程序,建立到1500模拟器的连接,连接下
阅读全文
摘要:周末做了一个小的练习,读取WINCC预先定义的用户,把名字填写在组合框里面。 假设组合框名字叫做Userlist,在画面打开事件写下面的vbs脚本 Sub OnOpen() Dim fullusername,databasename,sqlconnstr,conn,sqlstr,objrs,user
阅读全文
摘要:假设需要读取100个随机数,存入有100个成员的数组。做这个练习是为了学习一下SCL编程。随机数使用系统时钟纳秒数来线性转换。 新建项目,选用1500PLC(6ES7 513-1AL02-0AB0,当然可以选用其它型号),设定本地时区,建立网络。 新建DB,建立变量,取消优化块的访问。 新建FC,先
阅读全文
摘要:最近现场需要做WINCC画面上报警闪烁功能,以前也做过,只是很久没弄了,做个练习记录一下。 假设高限报警时,IO域背景闪烁黄色,高高限报警时,IO域背景闪烁红色。 在wincc新建一个项目,内部变量新建一个32位浮点数Value,两个二进制变量H和HH。新建一个画面,放置IO域,关联Value变量。
阅读全文
摘要:今天使用笔记本电脑中虚拟机连接实际PLC,参考了一下网络上的教程,步骤如下: 打开虚拟机,点击菜单虚拟机-设置,在对话框选择网络适配器,网络连接选择桥接模式。 点击菜单编辑-虚拟网络编辑器,弹出对话框 点击右下方更改设置按钮,选择桥接模式,在桥接至下拉菜单选择正确的网卡 主机的网卡地址可以设置成自动
阅读全文
摘要:今天使用TIA V16做了一个CPU 1214C AC/DC/Rly的程序,编译的时候报错如下: 双击错误之处也没跳转到出错位置。刚开始以为是不是路径有中文,项目名有中文,后来一想都16版本了,不至于吧? 电脑里面另一个虚拟机里有TIA V17,把项目程序拷贝到那边,打开编译通过了。我估计是固件版本
阅读全文
摘要:现场除尘设备配置了CEMS,通过北京万维盈创的数采仪使用modbusTCP和中控室1500PLC通讯,岗位人员反映中控计算机上数据异常,表现为数据不变化,有时候跳变到无穷大。经过几天排查处理,基本上解决了,把出现问题的地方列举一下: 1. 数采仪的IP地址和其中一台工控机的IP地址一致,通过修改工控
阅读全文
摘要:今天在现场有同事问我如何在TIA做这个功能,当时忙,粗略想了一下。晚上回到家实际做了一个小的练习,还是很好实现的。这是我自己做的一个练习,应该会有更好的,更简洁的实现办法。 在TIA上新建一个FB,建立下面的变量: 写下面的程序 在OB1调用这个FB
阅读全文
摘要:假设有这样一个应用需求,一个会仓,上面有10个脉冲阀,按照顺序进行喷吹,每个阀喷吹后,间隔一定时间下一个阀喷吹,可以设置总的喷吹次数,达到次数后停止喷吹,如果总喷吹次数设置为0,那么就一直喷吹下去。如果点击了开始按钮开始喷吹动作,再次点击开始按钮,不会重新开始。点击了停止按钮,全部停止,再次点击开始
阅读全文
摘要:和前一篇一样,我希望在没有点击停止按钮时,多次点击开始按钮不要中断当前流程。 在FB程序变量的static组添加BOOL类型running变量。 修改SCL程序如下 IF #stopbtn=1 THEN #CurrentState := 4; #Running := 0;END_IF; IF (#R
阅读全文
摘要:前面做的练习有一个小的问题,那就是点击开始按钮后,如果等一会再次点击开始按钮,会中断当前进度,重新开始。如果希望点击开始后,如果没有点击停止,再次点击开始按钮不中断当前流程,就需要对程序稍作修改。在FB1的static增加一个BOOL变量Running。 修改FB1下的梯形图程序前两段如下,其它程序
阅读全文
摘要:继续练习SCL编程,按照前面第2个练习的要求,使用SCL实现红绿黄等倒计时还有5秒进行闪烁。 前面程序新建一个SCL编程的FB,建立下面的变量 写下面的SCL程序 IF #stopbtn = 1 THEN #CurrentState := 4;END_IF;IF #startbrn = 1 THEN
阅读全文
摘要:这个练习尝试使用SCL编程,按照第一个交通信号灯的要求写控制程序。因为我是初学者,所以做出来的东西可能不是最简洁最优的,只是当学习体验做一个记录而已。 在前面的程序基础上新建一个FB,使用SCL编程方式,先建立变量如下: 写下面的SCL程序,其中TON这样的功能块通过从右边的指令集找到,鼠标拖拽到需
阅读全文
摘要:今晚在昨天的基础上增加要求,三种灯在计时还剩下5秒时进行闪烁。 在昨天项目基础上新建一个FB,定义下面的变量。 在此FB内部写下面的程序 在OB1调用这个FB,分配参数 在wincc新建变量关联TIA中的变量 在WINCC画面上放置2个按钮和3个圆形,2个按钮的鼠标按下使start1和stop1为1
阅读全文
摘要:练习一下交通信号灯程序,从简单的功能做起。红绿黄等交替亮起。使用TIA编程,做成FB。 新建一个TIA项目,选择一个1200CPU. 1. 新建一个FB,在新建的FB,先配置输入输出变量。 2. 在FB写下面的程序,OB1里面调用此FB 3. 在WINCC上建立1200?1500的变量连接,连接博图
阅读全文
摘要:继续学习wincc下面VBA编程,这个练习实现变量线性标定。 在前面练习基础上做,有REAL1至REAL10共10个变量,通过VBA脚本对Real1至Real5设置线性标定。 写下面的VBA脚本: Sub SetTagScaleParameter()Dim hmigo As hmigoDim str
阅读全文