随笔分类 - PLC related / PLC Application
西门子1200/1500/300/400PLC
摘要:sfb19_sfb20 SFB19: 启动远程CPU(暖启动/冷启动) SFB20:停止远程CPU 注意操作的是远程cpu,前提一定存在一个中间设备做S7通信 sfb19/20适用于于300/400PLC,且可以选择启用400冗余系统中的其中一个PLC或者两个PLC。 应用 实例以300PLC作为S
阅读全文
摘要:注:原始信息来自于手册帮助 关于status 在西门子的PLC中,SFB52_53_54的STATUS参数用来表达包含的错误信息。可以解析为ARRAY[1...4] of BYTE。 BYTE 1: Function_Num,常规错误代码 BYTE 2: Error_Decode, 错误代码的位置
阅读全文
摘要:参考文档 参考来源 讨论PID时首先确定是基于哪个公式的讨论 理想PID公式: \[u(t) = K_p \left[ e(t) + \frac{1}{T_i} \int_0^t e(t)\,dt + T_d \frac{de(t)}{dt} \right] \] e(t)=Psetpoint -
阅读全文
摘要:参考链接 在STEP7环境下S7-300F与ET200S实现Profinet安全相关通讯的入门文档 分配 F-IO模块的PROFIsafe安全地址 钝化和去钝 SIMATIC 工业软件 SIMATIC Safety - 组态和编程;适用博图。 插件安装-(classic step7适用) 安装S7-
阅读全文
摘要:关于RSE(report systerm error) 注:RSE/报告系统错误/SSL/RDSYSST/诊断状态DB等等是针对 S7-300/400 PLC系统而言。 作用 使用通过“报告系统错误”进行系统诊断,可以生成分析系统错误的块以及具有文本错误说明和错误位置的报警。可根据带报警功能的组件定
阅读全文
摘要:背景 犯了一个坑,以为1500系列的PWM/高频输出方式和1200差不多,直接使用指令CTRL_PWM就能配置。但是实际上在1500上,CTRL_PWM这个指令找不到了。网上搜的教程也都是千篇一律的200smart/1200的PWM脉冲配置,找不到1500系列怎么玩。后来在论坛上,看到几个国外老哥遇
阅读全文
摘要:读写时钟和时钟同步 设置时间日期 在编辑器页面,选择PLC,选择Set Time of Day,可以把PC的时间同步给PLC。(除了此方法外,也可以在硬件组态界面把时间同步给PLC;或者通过SFC0分配系统时间给PLC。) 从OB1获取Date_And_Time 如下,OB1的临时变量P#L12.0
阅读全文
摘要:循环程序执行与过程映像区的更新 主程序循环过程: OS启动扫描循环监视时间 将输出过程映像区的值写到输出模块 读取输入模块的值状态值,并更新到输入过程映像区 逻辑处理 当循环结束,处理其他未决任务,例如删除和加载块。 CPU返回循环启动,重新启动扫描循环监视时间 过程映像区和外设地址: 'I'/'Q
阅读全文
摘要:1. 大端模式和小端模式 大端模式:高位字节地址在内存的低位地址端,低位字节地址在内存的高位地址端。 小端模式:高位字节地址在内存的低高地址端,低位字节地址在内存的低位地址端。 2. 西门子PLC中一个word的表示 如图:IW17 = IB17 + IB18 其中IB17在高位地址端,IB18在低
阅读全文
摘要:1. 硬件配置 300侧 1200侧 对于以什么方式结束所接收的消息,此处是默认的时间结束。 2. 程序 300侧 EN_R管脚可以常1; LADDR是输入输出IO地址; DB_NO填发送/接收数据DB号; DBB_NO填发送/接收数据DB起始地址; 图一左边通信出错时的重连逻辑,这一类重连思路对处
阅读全文
摘要:1. 背景 最近用一个300PLC做S7通信的时候,因为交互的数据量有1024个bytes.这才意识到put get在数据量上的限制。以及S7大数据传输用到的BSEND/BRCV。 2. S7支持的指令 在PLC里,能基于S7协议用于数据交换的指令如下(S7 300/400下描述): 其中值得注意的
阅读全文
摘要:1. 背景 以前了解过串行通信的方法但是没有详细了解过具体实现。趁着手上有的一堆破铜烂铁尝试自己去实现一个最简单的串行控制。 目的是通过移位寄存器的不同位的表达,达到2*2=4个的继电器管断组合,达到切换矩阵的目的。 这里只记录一下程序实现,不记录硬件电路。 2. 材料 移位寄存器:SN74AHC5
阅读全文
摘要:1. 模拟量有哪些 温度 压力 速度 填充量 PH值 2. 变送器 对于PLC而言,只能处理位模式格式的模拟值(-32767~32767)。所以变送器的目的是测量如压力流量温度等物理值,再转换成电流/电压/电阻等形式,方便模拟量输入模块采集,采集后再模块内部有一个AD(模数)转换器,可以把电流电压电
阅读全文
摘要:1. 什么叫服务数据 服务数据,service data:除了诊断缓冲区的内容外,服务数据还包含有关CPU内部状态的更多信息。如果CPU发生故障且无法通过其他方法解决的时候,则用户可以导出服务数据发送给西门子服务与支持团队,便于服务与支持人员快速分析问题原因 2. 如何读取服务数据 MFCT工具读取
阅读全文
摘要:读取本地时间的纳秒时间,计算取余数得到随机数 1. 变量声明,定义 2. 模式选择,支持UDINT和CHAR CHAR仓库定义了72个字符,由自定的字符串长度决定的 char没有从0开始;PLC字符串长度为(2+n);第一个byte保存的是最大长度,第二个是当前长度,后面才是用户指定的长度,如str
阅读全文
摘要:这套程序本来是在Smart200上玩出来的,后来在PLC1200/PLC1500的环境下重写了PLC程序。换句话说,这要遵守程序里的算法公式,不管什么PLC都能做出这几种波形 1. 采样时间 想要生成连续的波形图,本质就是在采样时间点上采集当前输出值,当采样点足够多的时候,在时间线上就形成了随时间变
阅读全文
摘要:PLC中的循环 在PLC指令的执行过程中,FOR循环会在每个扫描周期执行完所有循环,然后程序才会接着往下扫描; 在PLC指令的执行过程中,IF判断会在每次扫描中判断一次条件,满足则进入执行体,不满足则跳出IF; 把IF放在FOR循环里面,会导致循环体执行时间过长,或者其他问题吗?(答案是不会)毕竟每
阅读全文
摘要:向导 只想看S7-300和S7-1200 TCP连接实例的朋友请直接点击这里 OUC 开放式用户协议,包括ISO,ISO-on-TCP,TCP/IP,UDP四种。西门子PLC中有多种不同的方式建立连接。 在硬件组态中建立TCP通信 打开硬件组图,网络视图 添加新连接 填入本地ID,关于本地ID:针对
阅读全文
摘要:建立ARRAYDB 集合配方需要的所有元素结构,组成一个UDT(包含范围最全) 新建一组ARRAY DB,元素的个数就是配方需要的副本的个数 数组DB勾选仅存储在装载内存中,以便数据量大的配方不占用数据工作存储器空间,节省资源 在ARRAY DB的起始值处填写配方的具体值 1200不支持ARRAY
阅读全文
摘要:上升沿 //pulse generate IF #my_singal AND NOT #pulse_bool THEN ; END_IF; #pulse_bool := #my_singal; 数值记忆,记录当数值变化时事件 //memory,my_order由外部主动触发 IF #my_order
阅读全文

浙公网安备 33010602011771号