西门子 - TIA编程指南 - 笔记有比较有趣想法或者方便的方法欢迎留在评论区1.前言2.原文理论内容1.数据存储部分1.优化数据块特性3.使用指令内容基本指令篇1.位逻辑运算指令1.NOT 取反RLO2.定时器指令1.TON指令3.比较指令1.字符、字符串 比较4.移动指令1.POKE_BLKSCL指令5.程序控制指令扩展指令篇1.String类型工艺篇SinaParas 读取安驰伺服扭矩参数通讯篇Modbus_TCP1.硬件信息2.MB_CLIENT说明3.CONNECT说明Modbus_RTU1.硬件信息2.Modbus_Comm_Load说明3.Modbus_Master说明4.PLCSIM1.S7-PLCSIM Advanced v6.0有比较有趣想法或者方便的方法欢迎留在评论区1.前言本文分上下部分上部分节选自博图编程指南中的一些内容和自己的应用参数。 下部分会记录一些自己的应用与学习过程。2.原文理论内容1.数据存储部分1.优化数据块特性S7-1200优化块的结构​​​​特性• 由于较大的变量位于块的开头较小的变量位于块的末尾因此不会形成数据间 隙。 • 优化块只有符号访问。S7-1500优化块的结构1.结构是分开放置的因此可以作为块复制。2.保持性数据位于单独的区域中可以作为块复制。 在电压丢失的情况下该数据会在 CPU 内保存。“MRES”将此数据重置为装载 存储器中的起始值。特性• 由于较大的变量位于块的开头较小的变量位于块的末尾因此不会形成数据间 隙。 • 由于处理器优化存储访问速度更快所有变量都以某种方式存储以便 S7- 1500 的处理器只需一个机器命令即可直接读取或写入它们。 • 布尔变量以字节形式存储以便更快地访问。因此控制器不必以掩码方式访问。 • 优化块有一个存储预留区用于在运行操作中加载参见第 3.2.8 章 下载无需重 新初始化。 • 优化块只有符号访问。推荐• 一般来说只使用优化块。 – 您不需要绝对寻址并且始终可以使用符号数据与对象相关进行寻址。 也可以使用符号数据进行间接寻址参见第 3.6.2 章 ARRAY 数据类型和间 接字段访问。 – 在控制器中处理优化块比标准块快得多。 • 避免在优化和非优化块之间复制/赋值数据。源格式和目标格式之间的数据转换 需要很长的处理时间。3.使用指令内容基本指令篇1.位逻辑运算指令1.NOT 取反RLO当你在使用梯形图编程时有很多并联条件你可以串联起来在后面加上NOT指令。比如2.定时器指令1.TON指令西门子定时器指令只有Q输出在程序中被引用才能正常运行。3.比较指令1.字符、字符串 比较比较指令不单单可以比较数字也可以比较字符或者字符串。4.移动指令1.POKE_BLKSCL指令5.程序控制指令扩展指令篇1.String类型String类型前面两个字节用来存储字符串的长度。工艺篇SinaParas 读取安驰伺服扭矩参数通讯篇首先确认好基本信息如果通讯不上可以用测试软件测试通之后再进行尝试会更快。如果测试软件都测试不通先查接线。如果是串口查看端口号波特率数据位停止位奇偶校验串口中有主站从站。主站是主动发起连接相当于是客户端。从站是接受连接相当于服务器。主站、从站主要是看谁发起连接。如果是网口查看IP地址端口号网口中有服务器客户端客户端是主动发起连接。服务器是接受连接。主站、从站主要是看谁发起连接。Modbus_TCP1.硬件信息设备直接连接的网口正确现在设备网口越来越多每个网口功能不一样IP地址端口号硬件标识符正确2.MB_CLIENT说明确认硬件无误后可以通过Modbus_TCP测试软件测试根据STATUS信息来修改参数。需要设置参数MB_MODE , MB_DATA_ADDR , MB_DATA_LEN , CONNECT)可能需要的参数MB_Unit_IDMB_CLIENT 指令的背景数据块中的 “MB_Unit_ID” 有什么功能S7-1200 CPU 作为 Modbus TCP 客户端与 Modbus TCP 服务器通信当尝试访问比 Modbus TCP 服务器更低端的串行子网中的设备会有报错 “无法建立连接”。这种情况下 Modbus TCP 服务器作为 Modbus RTU 协议中的网关“MB_Unit_ID” 参数相当于 Modbus RTU 协议中的从站地址。Modbus TCP 客户端直接向 Modbus TCP 服务器发送请求Modbus TCP 服务器通过识别 “MB_UNIT_ID” 参数将请求转发到从站设备。在 S7-1200 项目中选择系统块双击打开 MB_CLIENT 指令的背景数据块“MB_CLIENT_DB”, 在静态变量 Static 下可以找到 MB_Unit_ID (默认起始值 16#FF即十进制 255)。我是读数据参数设置MB_MODE0 , MB_DATA_ADDR40001偏移地址 , MB_DATA_LEN125 , CONNECT)MB_DATA_ADDR 补充说明一般我直接是40001加上供应商给的偏移地址。对于一般的支持 Modbus TCP 设备可能无法在其设备手册中查找到诸如 40001、30001 这种数据地址而是以功能码 十六进制数形式的变量地址这样有两种处理办法方法 1将功能码 100 作为 MB_MODE十六进制地址数转化为十进制数作为 MB_DATA_ADDR。例如 0x03 功能码地址 0x00FF这样就是 MB_MODE 103 MB_DATA_ADDR 255。方法 2通过判断功能码决定是读是写决定 MB_MODE 为 0 读还是 1 写2 写比较特殊只用于不支持 5、6 号功能码的设备然后将十六进制地址数转化为十进制数然后对于不同的功能码十进制数增加不同的偏移量对于功能码 1、5、15 偏移量为 1对于功能码 2 偏移量为 10001对于功能码 3、6、16 偏移量为 40001对于超过 9999 的地址偏移量为 400001对于功能码 4 偏移量为 30001。同样以 0x03 功能码地址 0x00FF 为例因为是读所以 MB_MODE 0 0x00FF 转换为十进制为 255加上偏移量 40001 就是 40256这样 MB_DATA_ADDR 40256。3.CONNECT说明需要设置参数InterfaceIDIDActiveEstablishedADDRRemotePort其他一般为默认我是读数据参数设置InterfaceID64ID1ActiveEstablished1ADDR读取设备IP地址RemotePort读取设备端口号)官方说明链接“西门子MB_CLIENT使用方法”Modbus_RTU1.硬件信息需要根据实际情况设置2.Modbus_Comm_Load说明根据实际设备参数修改PORTBAUDPARITY参数MB_DB直接填写Modbus_Master / Modbus_Slave内的MB_DB变量就可以3.Modbus_Master说明确认硬件无误后可以通过Modbus_RTU测试软件测试根据STATUS信息来修改参数。需要设置参数MB_ADDR, MODE, DATA_ADDR, DATA_LEN , DATA_PTR)我是读数据参数设置MB_MODE0 , MB_DATA_ADDR400001偏移地址 , MB_DATA_LEN120 )4.PLCSIM1.S7-PLCSIM Advanced v6.0创建一个可以被访问到的虚拟PLC先创建“PLCSIM”启动把项目下载进去。关闭选择“TCP/IP Single Adapter”启动再把项目下载进去即可。就可以被PC上的软件访问到了。