手摸手教你撕碎西门子S7通讯协议15--开发自己的通讯库写数据

1、S7通讯回顾

    - (1)建立TCP连接      Socket.Connect- 

     - (2)发送访问请求     COTP- 

     - (3)交换通信信息     Setup Communication- 

     - (4)执行相关操作     读、写、PLC启停、时间、上传下载-  
 

2、s7报文回顾 


 

3、通讯库回顾 

4、继续封装

   /// <summary>
   /// 写入数据
   /// </summary>
   /// <typeparam name="T">写入的数据类型</typeparam>
   /// <param name="value">写入的目标数值</param>
   /// <param name="variable">PLC变量地址</param>
   /// <returns></returns>
   public Result Write<T>(T value, string variable)
   {
       DataParameter dataParameter = new DataParameter();
       Type mtype = typeof(T);
       //如果是布尔类型,则修改数据类型为bit
       if (mtype.Name == "Boolean")
       {
           dataParameter.DataItemType = DataItemType.BIT;
       }
       try
       {
           // 解析地址
           dataParameter.GetFromVariable(variable);

           // 写入数据
           this.Write<T>(
               value,
               dataParameter.ParamItemType,
               dataParameter.AreaType,
               dataParameter.DBNumber,
               dataParameter.ByteAddress,
               dataParameter.BitAddress,
               dataParameter.DataItemType);

           if (dataParameter.State != 0xff)
           {
               throw new Exception("数据写入失败!" + dataParameter.State);
           }
           return new Result();
       }
       catch (Exception ex)
       {
           return new Result() { IsSuccessed = false, Message = ex.Message };
       }
   }

 

5、测试程序 

1、写入float

2、写入short

3、写入bool

 

6、小结

自己的通讯库是够甘甜的,和新疆的葡萄一样的香甜,有人可能要问,前面不是有第3方通讯库写好的,拉来用不就行了吗?是的,没有错,别人的东西可以拉来用,但是我们的目标不仅是使用,而是形成自己的产品,实力,别人的库也是写的代码,只是我们看不到而已。同样的,我们自己也可以,强国工程,从小做起,不得不来个大大的鸡腿,真香啊。 

原创不易,打字截图不易,走过路过,不要错过,欢迎点赞,收藏,转载,复制,抄袭,留言,动动你的金手指,早日实现财务自由

  • 8
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

hqwest

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

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

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

打赏作者

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

抵扣说明:

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

余额充值