本人愿和同道中人共同探讨西门子技术范围包括(200/300/400/Wincc/Hmi)
技术文章参考博客! http://jiansiting.gkbk.com
顶,
我有个问题想问问你,能不能给我一个简单的西门子 PLC有模拟量控制变频器的程序,才做这方面的程序 还不知道怎么弄谢谢了
QQ283636685
#include "apdefap.h"
int gscAction( void )
{
// WINCC:TAGNAME_SECTION_START
// syntax: #define TagNameInAction "DMTagName"
// next TagID : 1
// WINCC:TAGNAME_SECTION_END
// WINCC:PICNAME_SECTION_START
// syntax: #define PicNameInAction "PictureName"
// next PicID : 1
// WINCC:PICNAME_SECTION_END
__object *pADOCnnection; //** 声明ado链接对象
__object *pADORecordSet; //** 声明ado记录集对象
//SYSTEMTIME sysTime;
static char s_strTime【21】; //** 静态声明时间字符数组
float fJd,temp1;
#pragma code("kernel32.dll"); //**调用windows api 获得系统时间
void GetLocalTime(SYSTEMTIME* lpst);
#pragma code();
SYSTEMTIME sysTime; //**定义系统时间结构
GetLocalTime(&sysTime); //**获得系统时间放到systime结构中
if(!GetTagBit("放料记录")) return 0; //** 判断变量 放料记录如果不是0则函数直接返回
GetLocalTime(&sysTime); //** 如果不为0 则在此获取一次系统时间
sprintf(s_strTime,"%04d-%02d-%02d %02d:%02d:%02d", //** 把获取的系统时间以格式打印的形式送到s_strtime变量中
sysTime.wYear, sysTime.wMonth, sysTime.wDay, //** 把systime结构体成员分解出来分别放置到数组中
sysTime.wHour, sysTime.wMinute, sysTime.wSecond);
pADOCnnection = __object_create("ADODB.Connection"); //** 创建ado链接对象
if( pADOCnnection != NULL ) //** 如果创建成功
{
pADOCnnection->Open("DSN=AAA"); //**打开odbc名称为 aaa的一个串连接
if( pADOCnnection->State !=0 ) //**然后判断链接成功
{
pADORecordSet = __object_create("ADODB.RecordSet"); //** 创建ado记录集对象
if( pADORecordSet != NULL ) //** 如果创建成功
{
pADORecordSet->Open("SELECT * FROM CMJL",pADOCnnection,2,3); //** 执行一条sql语句,查询cmjl表中所有字段
pADORecordSet->AddNew(); //**添加一条新记录
pADORecordSet->Fields("放料时间")->Value = s_strTime; //**把系统时间添加到放仓时间字段中
pADORecordSet->Fields("下料仓号")->Value = GetTagByte("CM_CH"); //**把变量cm_ch添加到下仓号字段中
pADORecordSet->Fields("仓下料设定值")->Value = GetTagFloat("CM_SET"); //**把变量cm_set添加到仓下料设定值字段中
pADORecordSet->Fields("仓下料实际值")->Value = GetTagFloat("CM_RLL"); //**把变量CM_RLL添加到仓下料实际值字段中
pADORecordSet->Update(); //**执行更新记录集
pADORecordSet->Close(); //**执行关闭记录集
__object_delete(pADORecordSet); //**删除ado对象释放内存
}
}
pADOCnnection->Close(); //**如果记录集创建没有成功 同样删除ado对象释放内存
__object_delete(pADOCnnection);
}
return 0; //**函数直接返回
}