程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> C#與松下FP∑可編程控制器的通信(3)

C#與松下FP∑可編程控制器的通信(3)

編輯:關於C語言

代碼如下:

using System;
using System.Text;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Data;
namespace complc
{
/// <summary>
/// Form1 的摘要說明。
/// </summary>
public class comForm : System.Windows.Forms.Form
{
  private AxMSCommLib.AxMSComm axMSComm1;
  private System.Windows.Forms.TextBox textBox1;
  private System.Windows.Forms.TextBox textBox2;
  private System.Windows.Forms.Button button1;
  private System.Windows.Forms.Button button2;
  private System.Windows.Forms.Label label1;
  private System.Windows.Forms.Label label2;
  /// <summary>
  /// 必需的設計器變量。
  /// </summary>
  private System.ComponentModel.Container components = null;
  public comForm()
  {
  // Windows 窗體設計器支持所必需的
  InitializeComponent();
  // TODO: 在 InitializeComponent 調用後添加任何構造函數代碼
  }
  /// <summary>
  /// 清理所有正在使用的資源。
  /// </summary>
  protected override void Dispose( bool disposing )
  {
  if( disposing )
  {
   if (components != null
   {
   components.Dispose();
   }
  }
  base.Dispose( disposing );
  }
  /// Windows 窗體設計器生成的代碼
  /// <summary>
  /// 應用程序的主入口點。
  /// </summary>
  [STAThread]
  static void Main()
  {
  Application.Run(new comForm());
  }
  private void button1_Click(object sender, System.EventArgs e)
  {
  string ms,rd = "" ;
  int i;
  if (!axMSComm1.PortOpen)
   axMSComm1.PortOpen = true; //打開串口
  axMSComm1.InputLen = 0; //清除接收緩沖區
  axMSComm1.DTREnable = true; //置DTR有效
  axMSComm1.RTSEnable = true; //置RTS有效
  axMSComm1.InputMode = MSCommLib.InputModeConstants.comInputModeText; //置為二進制輸入方式
  axMSComm1.RThreshold = 1; //設置為接收緩沖區每接收一個字符將引發一次OnComm事件
  ms=textBox1.Text; // 輸入如:%01#RDD9001590016或%01#RDD0100601036
  axMSComm1.Output = ms+tobcc(ms)+(char)13;
  // sleep(30);
  rd += axMSComm1.Input;
  textBox2.Text = rd;
  }
  private void comForm_Load(object sender, System.EventArgs e)
  {
  axMSComm1.CommPort = System.Convert.ToInt16(1);  //設為com1
  axMSComm1.Settings = "9600,n,8,1";
  }
  public string tobcc(string s)  //幀校驗函數FCS
  {
  int t = 0;
  char[] chars = s.ToCharArray();
  for(int i = 1;i <= s.Length-1;i++)
  {
   t = t^=(char)chars[i];
  }
  return t.ToString().Substring(1,2);
  }
  private void button2_Click(object sender, System.EventArgs e)
  {
  Application.Exit();
  }
}
}

五、結論

本文所有程序均在Windows XP, Visual.Studio.Net2003環境中調試通過,該通信方式簡單,通信十分穩定可靠,從而在工業控制的小型監控系統中有著廣闊的應用前景。讀者可在本文的基礎上,參考松下公司的MEWTOCOL-COM協議,便可輕松實現PC與松下FP∑系列PLC的通信,以完成上位機對PLC的監視與控制。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved