⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ibhnetbspdlg.cpp

📁 s5,s7用link与软PLC通信的例程
💻 CPP
字号:
// IBHNetBspDlg.cpp : Implementierungsdatei
//

#include "stdafx.h"
#include "IBHNetBsp.h"
#include "IBHNetBspDlg.h"
#include "DlgProxy.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

// IBHNet.dll Funktionen dem eigenen Projekt hinzuf黦en.
#include <atlbase.h>
#import "ibhnet.dll" no_namespace named_guids

// Anmerkung: Den durch die #import Direktive in der automatisch erzeugten Datei 'ibhnet.tlh'
// vorhandenen 'raw_' Funktionen ist der Vorzug gegen黚er den etwas bequemer zu verwendenden
// COM-Verkapselungen zu geben, da die raw_ Funktionen Fehler immer im HRESULT zur點kgeben
// anstatt eine Exception zu werfen, die mit try{}catch(...){} gefangen werden muss.
// Microsoft VC++ bietet in der importierten Deklaration beide Varianten an.

IIIBHnet * pIBH	= NULL;
bool connected	= false;



/////////////////////////////////////////////////////////////////////////////
// CAboutDlg-Dialogfeld f黵 Anwendungsbefehl "Info"

class CAboutDlg : public CDialog
{
public:
	CAboutDlg();

// Dialogfelddaten
	//{{AFX_DATA(CAboutDlg)
	enum { IDD = IDD_ABOUTBOX };
	//}}AFX_DATA

	// Vom Klassenassistenten generierte 躡erladungen virtueller Funktionen
	//{{AFX_VIRTUAL(CAboutDlg)
	protected:
	virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV-Unterst黷zung
	//}}AFX_VIRTUAL

// Implementierung
protected:
	//{{AFX_MSG(CAboutDlg)
	//}}AFX_MSG
	DECLARE_MESSAGE_MAP()
};

CAboutDlg::CAboutDlg() : CDialog(CAboutDlg::IDD)
{
	//{{AFX_DATA_INIT(CAboutDlg)
	//}}AFX_DATA_INIT
}

void CAboutDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CAboutDlg)
	//}}AFX_DATA_MAP
}

BEGIN_MESSAGE_MAP(CAboutDlg, CDialog)
	//{{AFX_MSG_MAP(CAboutDlg)
		// Keine Nachrichten-Handler
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CIBHNetBspDlg Dialogfeld

IMPLEMENT_DYNAMIC(CIBHNetBspDlg, CDialog);

CIBHNetBspDlg::CIBHNetBspDlg(CWnd* pParent /*=NULL*/)
	: CDialog(CIBHNetBspDlg::IDD, pParent)
{
	//{{AFX_DATA_INIT(CIBHNetBspDlg)
	m_Edit1 = 0;
	m_Edit2 = 0;
	m_MPI = 0;
	//}}AFX_DATA_INIT
	// Beachten Sie, dass LoadIcon unter Win32 keinen nachfolgenden DestroyIcon-Aufruf ben鰐igt
	m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
	m_pAutoProxy = NULL;
}

CIBHNetBspDlg::~CIBHNetBspDlg()
{
	// Existiert f黵 dieses Dialogfeld ein Automatisierungs-Proxy, setzen Sie
	//  seinen Gegenzeiger auf dieses Dialogfeld auf NULL, um anzuzeigen,
	//  dass das Dialogfeld gel鰏cht wurde.
	if (m_pAutoProxy != NULL)
		m_pAutoProxy->m_pDialog = NULL;
}

void CIBHNetBspDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CIBHNetBspDlg)
	DDX_Control(pDX, IDC_LIST_VALUES, m_VarList);
	DDX_Control(pDX, IDC_COMBO_CPU, m_Combo);
	DDX_Text(pDX, IDC_EDIT1, m_Edit1);
	DDX_Text(pDX, IDC_EDIT2, m_Edit2);
	DDX_Text(pDX, IDC_EDIT_MPI, m_MPI);
	//}}AFX_DATA_MAP
}

BEGIN_MESSAGE_MAP(CIBHNetBspDlg, CDialog)
	//{{AFX_MSG_MAP(CIBHNetBspDlg)
	ON_WM_SYSCOMMAND()
	ON_WM_PAINT()
	ON_WM_QUERYDRAGICON()
	ON_WM_CLOSE()
	ON_BN_CLICKED(IDC_BUTTON_CONNECT, OnButtonConnect)
	ON_BN_CLICKED(IDC_BUTTON_Disconnect, OnBUTTONDisconnect)
	ON_BN_CLICKED(IDC_BUTTON_R_MW10, OnButtonRMw10)
	ON_BN_CLICKED(IDC_BUTTON_W_MW10, OnButtonWMw10)
	ON_BN_CLICKED(IDC_BUTTON_R_MD20, OnButtonRMd20)
	ON_BN_CLICKED(IDC_BUTTON_W_MD20, OnButtonWMd20)
	ON_CBN_DROPDOWN(IDC_COMBO_CPU, OnDropdownComboCpu)
	ON_WM_SHOWWINDOW()
	ON_WM_DESTROY()
	ON_BN_CLICKED(IDC_BUTTON_READOPSTATE, OnButtonReadopstate)
	ON_BN_CLICKED(IDC_BUTTON_SETPLCSTART, OnButtonSetplcstart)
	ON_BN_CLICKED(IDC_BUTTON_SETPLCSTOP, OnButtonSetplcstop)
	ON_BN_CLICKED(IDC_BUTTON_READBLOCK, OnButtonReadblock)
	ON_BN_CLICKED(IDC_BUTTON_WRITEBLOCK, OnButtonWriteblock)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CIBHNetBspDlg Nachrichten-Handler

BOOL CIBHNetBspDlg::OnInitDialog()
{
	CDialog::OnInitDialog();

	// Hinzuf黦en des Men黚efehls "Info..." zum Systemmen

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -