完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
你好呀!
我有一个带有以太网屏蔽 (W5100) 的 Arduino UNO,代码如下,用于从我的 PLC 读取数据 代码:全选#include #include #include "Settimino.h" byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED }; //MAC IPAddress ip(192,168,127,14); // Local Address IPAddress PLC(192,168,127,110); // PLC Address S7Client Client; void setup() { Serial.begin(9600); while (!Serial) { ; // wait for serial port to connect. Needed for Leonardo only } // Start the Ethernet Library Ethernet.begin(mac, ip); delay(200); Serial.println(Ethernet.localIP()); } bool Connect() { int Result=Client.ConnectTo(PLC, 0, // Rack (see the doc.) 0); // Slot (see the doc.) Serial.print("Connecting to ");Serial.println(PLC); if (Result==0) { Serial.print("Connected ! PDU Length = "); Serial.println(Client.GetPDULength()); } else Serial.println("Connection error"); return Result==0; } void CheckError(int ErrNo) { Serial.print("Error No. 0x"); Serial.println(ErrNo, HEX); // Checks if it's a Severe Error => we need to disconnect if (ErrNo & 0x00FF) { Serial.println("SEVERE ERROR, disconnecting."); Client.Disconnect(); } } byte Empfangen(int Zeile) //einzelne Bytes empfangen { int Result; byte Receive; // Verbinden while (!Client.Connected) { if (!Connect()) delay(500); } Result=Client.ReadArea(S7AreaDB, //DB Zugriff 53, // DB Number = 53 Zeile, // Start ab Byte x 1, // Anzahl der Bytes &Receive); // Ziel if (Result==0) { return Receive; } else CheckError(Result); } void loop() { Serial.print("Daten aus SPS: "); Serial.println(Empfangen(20)); //Lese Byte aus DB Zeile 20 Serial.println(""); delay(500); } |
|
相关推荐
|
|
只有小组成员才能发言,加入小组>>
269浏览 6评论
214浏览 5评论
有没有办法在不使用混杂模式的情况下实现Wifi驱动程序接收缓冲区访问中断呢?
217浏览 5评论
209浏览 4评论
197浏览 4评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-4-20 05:31 , Processed in 4.043643 second(s), Total 67, Slave 59 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号