VisualStudio2010-C#跟西门子1200(Sharp7)-简单上位机界面⑧-IO

VisualStudio2010-C#跟西门子1200(Sharp7)-简单上位机界面⑧-IO

 

上期回顾(上期主要是对PLC的输入监控代码进行了编写,让其在定时器响应程序中,不断实时读取PLC)

image.png

本期将对PLC的输出大概讲一下,其实跟输入的读取基本上是一样的

1.0 选择窗体界面,双击timer1,进入定时器响应程序,跟前面输入的时候一样,利用定时器响应程序,是用来循环读取PLC的输入输出状态

image.png

2.0 这里用Q0.0 和Q0.1来举例,源代码如下,建立通讯都一样,前面读取PLC数据块的时候已经建过了,那就不用再新建

private void timer1_Tick(object sender, EventArgs e)

        {

            var client = new S7Client();//创建S7客户端对象

            client.ConnectTo("192.168.0.1", 0, 1);//接受来次通讯的结果

3.0 之后要建立读取的缓存区,这里建立4个字节的就够了,可以读取I0.0-I3.7的输入状态了

            #region PLC输入监控

 

            var buffer = new byte[4];//建立4个字节的读取缓存区

4.0 建立缓存区后,就要开始建立链接了,这里读取输入要用ABRead的方法,然后从0.0开始读取4个字节的输入状态        

var buffer2 = new byte[4];//建立4个字节的读取缓存区

            //读取输入的从地址0开始的4个字节的数据,读到buffer

            client.ABRead(0, buffer2.Length, buffer2); //PLC的输出读取

 

5.0 新建一个局部变量bool类型的代1dby00,来接受读取到缓冲区的,buffer20.0这个位的数据,相当于PLC的I0.0,然后判断这个变量的值,如果为0则为白色,如果为1则为绿色,这样就实现了,输入状态监控,同理可以做其他的输入也是一样的        

            bool db1dby00 = S7.GetBitAt(buffer2, 0, 0);

            if (db1dby00 == true)

            {

                Q0_0.BackColor = Color.Green;

            }

            else

            {

                Q0_0.BackColor = Color.WhiteSmoke;

            }

 

            bool db1dby01 = S7.GetBitAt(buffer2, 0, 1);

            if (db1dby01 == true)

            {

                Q0_1.BackColor = Color.Green;

            }

            else

            {

                Q0_1.BackColor = Color.WhiteSmoke;

            }

 

6.0 按5.0 的方式,可以依次做到Q2.3,如下图,保存

image.png

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

老王工控笔记

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值