网站首页 > 技术教程 正文
Visual Studio 2010--C#跟西门子1200通讯(Sharp7)⑤--数据读取
上期回顾(上期主要编写了在呢么从PLC的特定数据库读取数据到C#缓冲区):
这期将继续说数据读取,上期把数据拿到缓冲区后,这里要把他一个一个拿出来,并转换成C#的类型显示
1.0 先看下PLC的数据块,变量的类型以及地址
2.0 然后根据PLC数据块的地址以及类型,来对应编写C#代码,要注意PLC变量地址0.0为BOOL类型,那对应的C#这边变量也要为BOOL,保证占用的字节大小一致,PLC地址0.0=C#的buffer,0,0,,当接收到转换后的数据后,在控制台输出数据,具体代码如下
static void Main(string[] args)
{
var client = new S7Client();//创建一个叫client的S7Client的匿名类型
int comectionResult = client.ConnectTo("192.168.0.11", 0, 1);//comectionResult用来接收通讯结果,括号里设置的是IP/机架/插槽
if (comectionResult == 0)//判断通讯是否正常,如果为0则通讯正常,否则通讯故障
{
Console.Write("comection OK");//控制台输出通讯正常
}
else
{
Console.WriteLine("comection error \n"+ client.ErrorText(comectionResult));//控制台输出通讯故障
}
//创建38个字节的数组,用来读取PLC数据
var buffer = new byte[38];
//读取DB1的从地址0开始的38个字节的数据,读到buffer
int readResult = client.DBRead(1,0,buffer.Length,buffer);
if (readResult == 0)//如果等于0,说明读取完成,否则读取故障了
{
Console.WriteLine("DB1 Read ok");
}
else
{
Console.WriteLine("DB1 Read error");
}
//读取BOOL,输出文本
bool db1dbx00 = S7.GetBitAt(buffer,0,0);
Console.WriteLine("db1dbx00:" + db1dbx00);
//读取BOOL,输出文本
bool db1dbx01 = S7.GetBitAt(buffer,0,0);
Console.WriteLine("db2dbx01:" + db1dbx01);
//读取int,输出文本
int db1dbw2 = S7.GetIntAt(buffer,2);
Console.WriteLine("db1dbx2:" + db1dbw2);
//读取浮点数double,输出文本
double db1dbd4 = S7.GetLRealAt(buffer,4);
Console.WriteLine("db1dbx4:" + db1dbd4);
//读取int,输出文本
int db1dbd8 = S7.GetDIntAt(buffer,8);
Console.WriteLine("db1dbx8:" + db1dbd8);
//读取uint,输出文本
uint db1dbd12 = S7.GetDWordAt(buffer,12);
Console.WriteLine("db1dbx12:" + db1dbd12);
//读取ushort,输出文本
ushort db1dbd14 = S7.GetWordAt(buffer,14);
Console.WriteLine("db1dbx14" + db1dbd14);
//强制转换成字符串类型相当于PLC的16进制,tostring()括号中要带x,不然仍旧是十进制不会转换
string hexdb1dbd12 = db1dbd12.ToString("x");
string hexdb1dbd14 = db1dbd14.ToString("x");
client.Disconnect();//断开连接
}
}
3.0 保存,打开在断开打开断点,然后按F5调试,刚开始可以先读取BOOL试试,这样能减少问题的发生,如果没问题,那控制台就会显示读取的数据
猜你喜欢
- 2024-10-20 【0基础学爬虫】爬虫基础之代理的基本使用
- 2024-10-20 datax 学习一 datax介绍
- 2024-10-20 体验IntelliJ IDEA的远程开发(Remote Development)
- 2024-10-20 Mac 上使用 Windows,Parallels Desktop 套装满减优惠
- 2024-10-20 探索X窗口系统 窗口探测工具
- 2024-10-20 快速掌握Linux基础,走好万里长征第一步
- 2024-10-20 网络协议之:haproxy的Proxy Protocol代理协议
- 2024-10-20 linux定时器编程详解(包含代码) 定时器 linux
- 2024-10-20 微软2月Win11更新阻止软件/注册表方式修改默认网络浏览器
- 2024-10-20 Go 每日一库之 rpcx github每日一题
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- sd分区 (65)
- raid5数据恢复 (81)
- 地址转换 (73)
- 手机存储卡根目录 (55)
- tcp端口 (74)
- project server (59)
- 双击ctrl (55)
- 鼠标 单击变双击 (67)
- debugview (59)
- 字符动画 (65)
- flushdns (57)
- ps复制快捷键 (57)
- 清除系统垃圾代码 (58)
- web服务器的架设 (67)
- 16进制转换 (69)
- xclient (55)
- ps源文件 (67)
- filezilla server (59)
- 句柄无效 (56)
- word页眉页脚设置 (59)
- ansys实例 (56)
- 6 1 3固件 (59)
- sqlserver2000挂起 (59)
- vm虚拟主机 (55)
- config (61)
本文暂时没有评论,来添加一个吧(●'◡'●)