产品名称 | 西门子S7-300,接口模块IM361西门子代理商 |
---|---|
公司名称 | 湖南西控自动化设备有限公司 |
价格 | .00/件 |
规格参数 | 西门子:S7300 PLC:6ES73613CA010AA0 德国:用于连接MAX.3扩展架,带有 K-BU |
公司地址 | 中国(湖南)自由贸易试验区长沙片区开元东路1306号开阳智能制造产业园(一期)4#栋301 |
联系电话 | 17838383235 17838383235 |
上期介绍了西门子S7-200 samrt 串口通讯中Modbus的应用,实际上s7-200 smart 串口还支持USS通讯(西门子驱动专用通讯协议)、自由口通讯协议,但由于都不太常用,就不再过多介绍,有需要的朋友可以加小编微信私聊,本期开始分享s7-200 smart 的以太网通讯,感谢大家支持;
003656一 | 西门子S7通信简介 |
S7通信
西门子S7通讯是一种用于自动化控制系统的开放式网络协议。它旨在提供高效、可靠和安全的设备之间通信方式。S7通讯支持各种类型的网络拓扑结构和连接方式,例如以太网、Profibus和Profinet等。此外,它还支持多种通讯协议和数据格式,包括二进制、ASCII和BMP等。通过S7通讯,不同厂商生产的设备可以相互通信,并实现协同工作。这有助于提高生产效率、降低成本,并促进自动化控制系统的智能化发展。
S7连接
S7连接是指建立在西门子S7通讯协议基础上的设备之间的互联。它可以通过各种接口(如以太网、串行口等)实现,使不同类型的设备(例如工控机、PLC、触摸屏等)能够相互通信和交换数据。在S7连接中,使用了特定的网络拓扑结构,例如Master-Slave或Peer-to-Peer等。这些拓扑结构可以根据实际应用需求进行调整,以满足不同场景下对系统效率、可靠性和安全性的要求。
单边通讯
在S7连接中,多使用单边通讯(即PUT/GET)实现CPU与CPU之间数据通讯。单边通讯顾名思义就是指只有一端发起的通讯,其它CPU程序无需做任何处理。这种通讯方式也被称为"主从通讯"或"读写通讯"。在单边通讯中,其中一台设备作为主站(Master),而另一台设备则作为从站(Slave)。主站负责向从站发送指令或数据,而从站则根据主站的要求进行操作或返回数据。单边通讯具有以下优点:
二 | S7-200 SMART CPU之间的以太网通信 |
S7-200 SMART CPU 固件版本 V2.0 及以上版本的 CPU 可实现CPU、编程设备和HMI(触摸屏)之间的多种通信:
S7-200 SMART CPU 以太网连接资源如下:
注:S7-200 SMART 在 V2.5 版本(硬件和软件)增加标准型 CPU 支持 PROFINET IO 智能设备的功能。后期会为大家分享学习如何使用s7-200 samrt 作为IO设备和智能设备
三 | 通信资源数量 |
PLC的通讯能力与该PLC的通讯链接资源数有关,链接资源越多,通讯能力就越强;
S7-200 SMART CPU 以太网端口含有 8 个PUT/GET 主动连接资源和 8 个PUT/GET 被动连接资源。例如:CPU1 调用 PUT/GET 指令与 CPU2 ~ CPU9 建立8主动连接的同时,可以与 CPU10 ~ CPU17 建立8被动连接(CPU10 ~ CPU17 调用 PUT/GET 指令),这样的话 CPU1 可以同时与16台 CPU(CPU2 ~ CPU17)建立连接。
关于主动连接资源和被动连接资源的详细解释如下:
四 | 使用向导完成CPU与CPU之间通讯步骤 |
通过S7通信实现CPU与CPU之间通讯,西门子提供了PUT/GET编程指令(通过指令&参数完成,有兴趣朋友可以学习学习,参数理解比较困难,本期不做过多介绍),同时也可以使用 PUT/GET 向导以简化编程步骤。该向导多允许组态 16 项独立 PUT/GET 操作,并生成代码块来协调这些操作。
在下面的例子中,CPU1 为主动端,其 IP 地址为192.168.2.100,调用 PUT/GET 指令;CPU2 为被动端,其 IP 地址为192.168.2.101,不需调用 PUT/GET 指令。通信任务是把 CPU1 的实时时钟信息写入 CPU2 中,把CPU2 中的实时时钟信息读写到 CPU1 中。操作步骤如下:
image-20240320105435615STEP 7 Micro/WIN SMART 在“工具” 菜单的“向导”区域单击“Get/Put”按钮,启动 PUT/GET 向导,在弹出的“Get/Put”向导界面中添加操作步骤名称并添加注释;
MWSmart_O1yHg3YH7r定义PUT操作
MWSmart_sm7zUl3DWd定义PUT操作:
定义GET操作
image-20240320111444680定义GET操作:
分配存储器地址
image-20240320111829009注:点击“建议”按钮向导会自动分配存储器地址。需要确保程序中已经占用的地址、PUT/GET 向导中使用的通信区域与不能存储器分配的地址重复,否则将导致程序不能正常工作。
点击下一步,显示向导自动生成的组件,可直接下一步或者生成;
image-20240320112024391点击“生成”按钮将自动生成网络读写指令以及符号表。只需用在主程序中调用向导所生成的网络读写指令即可
image-20240320112311078NET_EXE 子程序参数说明:
S7通信本地侧配置完成,远端无需配置,只需要配置需要传输的数据即可。
image-20240320113004146五 | 补充说明:读取时钟指令 |
说明 READ_RTC、SET_RTC 编程提示
这些指令不接受无效日期。例如,如果输入 2 月 30 日,则会发生非致命性日时钟错误 (0007H)。 不要在主程序和中断例程中使用 READ_RTC/SET_RTC 指令。执行另一个 READ_RTC/SET_RTC 指令时,无法执行中断例程中的 READ_RTC/SET_RTC 指令。在这种情况下,CPU 会置位系统标志位 SM4.3,指示尝试同时对日时钟执行二重访问,导致 T 数据错误(非致命错误 0007H)。 CPU 中的日时钟仅使用年份的后两位数,因此 00 表示为 2000 年。使用年份值的用户程序必须考虑两位数的表示法。 2099 年之前的闰年年份,CPU 都能够正确处理。
8 字节时间缓冲区的格式,从字节地址 T 开始
所有日期和时间值必须采用 BCD 格式分配(例如,16#12 代表 2012 年)。00 至 99 的 BCD 值范围可分配范围为 2000 至 2099 的年份。
T 字节 | 说明 | 数据值 |
---|---|---|
0 | 年 | 00 至 99(BCD 值)20xx 年:其中,xx 是 T 字节 0 中的两位数 BCD 值 |
1 | 月 | 01 至 12(BCD 值) |
2 | 日 | 01 至 31(BCD 值) |
3 | 小时 | 00 至 23(BCD 值) |
4 | 分 | 00 至 59(BCD 值) |
5 | 秒 | 00 至 59(BCD 值) |
6 | 保留 | 始终设置为 00 |
7 | 星期几 | 使用 SET_RTC/TODW 指令写入时会忽略值。 通过 READ_RTC/TODR 指令进行读取时,值会根据当前年/月/日值报告正确的星期几。 1 至 7,1 = 星期日,7 = 星期六(BCD 值) |
注意
紧凑型串行 (CRs) CPU 型号没有 RTC(实时时钟) 可使用 READ_RTC 和 SET_RTC 指令设置紧凑型串行 (CRs) CPU 型号中的年份、日期和时间值,但这些值将在下一次 CPU 断电通电循环时丢失。上电时,日期和时间将初始化为 2000 年 1 月 1 日。