s7-1200 的 profinet 通信口可以做 s7 通信的服务器端或客户端(cpu v2.0及以上版本)。s7-1200 仅支持 s7 单边通信,仅需在客户端单边组态(如图1)连接和编程(如图2),而服务器端只准备好通信的数据就行。和图2所示
图1
图2
指令介绍
1
put指令
s7-1200cpu的为s7通信提供了两条用于读写数据的指令“put”和“get”,使用put个get指令对伙伴cpu进行读写时,不管伙伴cpu是处于运行模式下还是停止模式下,s7通信依然可以正常进行。
req:触发put指令执行,每次上升沿时触发。
id:s7通信连接id,该连接id在组态s7连接时生效。
addr_1:指向伙伴cpu的地址,写入数据的区域地址
sd_1︰指向本地cpu的的地址,写出数据的区域地址
done:数据被成功写入到伙伴cpu
error:指令执行出错,错误代码存储在status中
2
get指令
req:触发get指令执行,每次上升沿时触发。
id: s7通信连接id,该连接id在组态s7连接时生效。
addr_1∶指向伙伴cpu的地址,待读取区域地址
rd_1∶指向本地cpu的的地址,读取回数据的存放地址
ndr︰伙伴cpu的数据被成功读取
error:指令执行出错,错误代码存储在status中
指令使用注意事项
(1)指令上使用的数据读写区域需要使用指针的方式进行给定,对应使用的数据块需要使用非优化访问的块。
(2)使用时需要确保参数addr与sd/rd定义的数据区域在数量、长度和数据类型方面都需要匹配。
(3)put/get指令的最大可传送数据长度为212/222字节,通信数据区域数量的增加并不能增加通信数据长度,反之增大通信的数据区域量,通信最大的数据长度会减少。
示例:两个1200plc同一项目下s7通信
通信需求
①将客户端(client)中db1.dbx0.0开始的10个字节发送到服务器的db1.dbx0.0开始的10个字节中。
②读取服务器(serve)中的db2.dbx0.0开始的10个字节到客户端db1.dbx0.0开始的10个字节中。
01
创建一个plc作为客户端,名称为“client”,设定ip地址为:192.168.0.10,勾选允许远程访问
02
创建一个plc作为服务器,名称为“sever”,设定ip地址为:192.168.0.12 ,勾选允许远程访问
03
在中间栏的“连接”条目中,可以看到已经建立的“s7_连接_1”,如图所示。
04
点中上面的连接,在“s7_连接_1”的连接属性中查看各参数。在常规中,显示连接双方的设备,ip地址。
①在本地id中:显示通讯连接的id 号,这里id=w#16#100(编程使用)。
②在特殊连接属性中:可以选择是否为主动连接,这里client 是主动建立连接。
③在地址详细信息中:定义通讯双方的 tsap 号,这里不需要修改。
05
程序编写
①客户端侧建立db1和db2块,并建立send和recv名称的数组。用于发送数据和接收数据
②服务器端建立db1和db2块,并建立send和recv名称的数组。用于发送数据和接收数据
③客户端编写程序
我国完成首个自动驾驶封闭高速公路测试环境建设
多家元件厂商停产 被动元器件或有增长点
洲明科技LED大屏助力2022粤港澳大湾区车展顺利举行
ST25DV动态NFC标签可以在其非易失性存储器中存储有用的诊断信息
5G商用化进程不断加速信息通信业又将迎来全新的机遇和挑战
S7-1200 PLC的S7通信服务器端解决方案
NVIDIA发布最新Orin芯片提升边缘AI标杆
TI微控制器产品系列介绍
“将停售新版iPhone15”?中国移动回应:假消息
一文详谈M2M(机器到机器)
ADC和DAC、DSP!解码器和独立DAC
默克全新OLED技术中国中心上海正式启用,助力中国OLED创新和应用
智能电网在电力系统的应用
便携电子设备的守护神! 维安01005系列ESD产品:小身体,大能力
基于PZT压电陶瓷的光相位调制!
华为SOC解决方案将向“人工智能+大数据+云”方向演进
电路板检测两种常见方法
芯闻3分钟:台积电今年或迎来八年来第一次利润下滑
如何根据应用合理选择电池
基于Compact PCI总线的热插拔技术的原理与设计方案