123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719 |
- #include "plt.h"
- struct plc_t plc[PLC_NBR_MAX + 1];
- static int plc_dbcb_0(void *para,int ncolumn,char ** columnvalue,char *columnname[])
- {
- int i;
- struct dbcbparam_t* pcbparam = (struct dbcbparam_t*)para;
- struct plc_t* dev = &plc[1];
- pcbparam->nrow++;
- log_dbg("%s, ++, row:%d, col:%d", __func__,pcbparam->nrow,ncolumn);
- for( i = 0; i < ncolumn; i++){
- if( strcmp("info",columnname[i]) == 0){
- strcpy(dev->szinfo,columnvalue[i]);
- }else if( strcmp("model",columnname[i]) == 0){
- strcpy(dev->szmodel,columnvalue[i]);
- dev->model = plt_devm_str2nbr(dev->szmodel);
- }
- }
- pcbparam->ret = 0;
- log_dbg("%s, --,ret:%d",__func__,pcbparam->ret);
- return 0;
- }
- int plc_init()
- {
- int result;
- char *errmsg = NULL;
- sqlite3* db = NULL;
- char sql[1024];
- struct dbcbparam_t cbparam;
- int ret = 0;
- int model = 0;
- log_dbg( "%s, ++",__func__);
- plt_lock_ctndb();
- db = plt_get_ctndb();
- sprintf(sql,"select * from plc");
- cbparam.nrow = 0;
- result = sqlite3_exec(db,sql, plc_dbcb_0,(void*)&cbparam,&errmsg);
- plt_unlock_ctndb();
- if( result != SQLITE_OK ){
- log_dbg("%s, result != SQLITE_OK : %d", __func__, result );
- ret = -1;
- }else if( cbparam.ret != 0){
- log_dbg("%s, cbparam.ret != 0 : %d", __func__ , cbparam.ret);
- ret = -2;
- }else if( cbparam.nrow != 1 ){
- log_dbg("%s, cbparam.nrow != 1 : %d", __func__ , cbparam.nrow);
- ret = -3;
- }else{
- model = plc_get_model();
- if( model == DEVM_SIMATIC_S7 ){
- simatic_s7_init();
- }else{
- log_dbg("%s, unknown model:%d", __func__, model);
- ret = -4;
- }
- }
- log_dbg("%s, --, ret:%d", __func__,ret);
- return ret;
- }
- int plc_get_model()
- {
- return plc[1].model;
- }
- int plc_get_state()
- {
- int model = plc[1].model;
- if( model == DEVM_SIMATIC_S7){
- return simatic_s7_get_state( 1 );
- }else{
- return -1;
- }
- }
- char* plc_get_state_str()
- {
- int model = plc[1].model;
- if( model == DEVM_SIMATIC_S7){
- return simatic_s7_get_state_str( 1 );
- }else{
- return NULL;
- }
- }
- int plc_send_sm_cmd(int cmd )
- {
- int model = plc[1].model;
- if( model == DEVM_SIMATIC_S7){
- return simatic_s7_send_sm_cmd( 1, cmd );
- }else{
- return -1;
- }
- }
- int plc_set_pcs_shutdown(int val )
- {
- int model = plc[1].model;
- if( model == DEVM_SIMATIC_S7){
- return simatic_s7_set_dev_pcs_shutdown( 1, val );
- }else{
- return -1;
- }
- }
- int plc_set_main_sw_trip(int val )
- {
- int model = plc[1].model;
- if( model == DEVM_SIMATIC_S7){
- return simatic_s7_set_dev_main_sw_trip( 1, val );
- }else{
- return -1;
- }
- }
- int plc_set_ems_reset_signal(int val )
- {
- int model = plc[1].model;
- if( model == DEVM_SIMATIC_S7){
- return simatic_s7_set_dev_ems_reset_signal( 1, val );
- }else{
- return -1;
- }
- }
- int plc_set_ems_safety_relay_reset_signal(int val )
- {
- int model = plc[1].model;
- if( model == DEVM_SIMATIC_S7){
- return simatic_s7_set_dev_ems_safety_relay_reset_signal( 1, val );
- }else{
- return -1;
- }
- }
- int plc_set_ems_pwrspl_reset_signal(int val )
- {
- int model = plc[1].model;
- if( model == DEVM_SIMATIC_S7){
- return simatic_s7_set_dev_ems_pwrspl_reset_signal( 1, val );
- }else{
- return -1;
- }
- }
- int plc_set_ems_safety_relay_off_signal(int val )
- {
- int model = plc[1].model;
- if( model == DEVM_SIMATIC_S7){
- return simatic_s7_set_dev_ems_safety_relay_off_signal( 1, val );
- }else{
- return -1;
- }
- }
- int plc_set_fan_rly1(int val )
- {
- int model = plc[1].model;
- if( model == DEVM_SIMATIC_S7){
- return simatic_s7_set_dev_fanrly1( 1, val );
- }else{
- return -1;
- }
- }
- int plc_set_fan_rly2(int val )
- {
- int model = plc[1].model;
- if( model == DEVM_SIMATIC_S7){
- return simatic_s7_set_dev_fanrly2( 1, val );
- }else{
- return -1;
- }
- }
- int plc_bms_ctrl_pwrup()
- {
- int model = plc[1].model;
- if( model == DEVM_SIMATIC_S7){
- return simatic_s7_bms_ctrl_pwrup( 1 );
- }else{
- return -1;
- }
- }
- int plc_bms_ctrl_pwrup_without_shielding_signal()
- {
- int model = plc[1].model;
- if( model == DEVM_SIMATIC_S7){
- return simatic_s7_bms_ctrl_pwrup_without_shielding_signal( 1 );
- }else{
- return -1;
- }
- }
- int plc_set_40099(int val )
- {
- int model = plc[1].model;
- if( model == DEVM_SIMATIC_S7){
- return simatic_s7_set_dev_40099( 1, val );
- }else{
- return -1;
- }
- }
- int plc_set_transf_alarm_temp(int val )
- {
- int model = plc[1].model;
- if( model == DEVM_SIMATIC_S7){
- return simatic_s7_set_dev_alarm_temp( 1, val );
- }else{
- return -1;
- }
- }
- int plc_set_transf_err_temp(int val )
- {
- int model = plc[1].model;
- if( model == DEVM_SIMATIC_S7){
- return simatic_s7_set_dev_err_temp( 1, val );
- }else{
- return -1;
- }
- }
- // 0 : ok
- int plc_chk_state(int stat)
- {
- int model = plc[1].model;
- if( model == DEVM_SIMATIC_S7 ){
- return simatic_s7_chk_state( 1, stat );
- }else{
- return -1;
- }
- }
- int plc_get_dc_non_load_sw_stat( )
- {
- int model = plc[1].model;
- if( model == DEVM_SIMATIC_S7 ){
- return simatic_s7_get_dc_non_load_sw_stat( 1 );
- }else{
- return -1;
- }
- }
- int plc_get_dc_main_fuse_stat( )
- {
- int model = plc[1].model;
- if( model == DEVM_SIMATIC_S7 ){
- return simatic_s7_get_dc_main_fuse_stat( 1 );
- }else{
- return -1;
- }
- }
- int plc_get_dc_surge_arrester_stat( )
- {
- int model = plc[1].model;
- if( model == DEVM_SIMATIC_S7 ){
- return simatic_s7_get_dc_surge_arrester_stat( 1 );
- }else{
- return -1;
- }
- }
- int plc_get_ac_main_sw_stat()
- {
- int model = plc[1].model;
- if( model == DEVM_SIMATIC_S7 ){
- return simatic_s7_get_ac_main_sw_stat( 1 );
- }else{
- return -1;
- }
- }
- int plc_get_power_supply_mcb_status()
- {
- int model = plc[1].model;
- if( model == DEVM_SIMATIC_S7 ){
- return simatic_s7_get_power_supply_mcb_status( 1 );
- }else{
- return -1;
- }
- }
- int plc_get_mcb_status()
- {
- int model = plc[1].model;
- if( model == DEVM_SIMATIC_S7 ){
- return simatic_s7_get_mcb_status( 1 );
- }else{
- return -1;
- }
- }
- int plc_get_power_supply_24v_stat()
- {
- int model = plc[1].model;
- if( model == DEVM_SIMATIC_S7 ){
- return simatic_s7_get_power_supply_24v_stat( 1 );
- }else{
- return -1;
- }
- }
- int plc_get_e_stop_btn_stat()
- {
- int model = plc[1].model;
- if( model == DEVM_SIMATIC_S7 ){
- return simatic_s7_get_e_stop_btn_stat( 1 );
- }else{
- return -1;
- }
- }
- int plc_get_reset_push_btn_stat()
- {
- int model = plc[1].model;
- if( model == DEVM_SIMATIC_S7 ){
- return simatic_s7_get_reset_push_btn_stat( 1 );
- }else{
- return -1;
- }
- }
- int plc_get_safety_relay_stat()
- {
- int model = plc[1].model;
- if( model == DEVM_SIMATIC_S7 ){
- return simatic_s7_get_safety_relay_stat( 1 );
- }else{
- return -1;
- }
- }
- int plc_get_ac_surge_arrester_stat()
- {
- int model = plc[1].model;
- if( model == DEVM_SIMATIC_S7 ){
- return simatic_s7_get_ac_surge_arrester_stat( 1 );
- }else{
- return -1;
- }
- }
- int plc_get_pcs_remote_trip_fb()
- {
- int model = plc[1].model;
- if( model == DEVM_SIMATIC_S7 ){
- return simatic_s7_get_pcs_remote_trip_fb( 1 );
- }else{
- return -1;
- }
- }
- int plc_get_bms_pwrspl_ctrl_rly()
- {
- int model = plc[1].model;
- if( model == DEVM_SIMATIC_S7 ){
- return simatic_s7_get_bms_pwrspl_ctrl_rly( 1 );
- }else{
- return -1;
- }
- }
- int plc_get_pcs_shutdown_ctrl_rly()
- {
- int model = plc[1].model;
- if( model == DEVM_SIMATIC_S7 ){
- return simatic_s7_get_pcs_shutdown_ctrl_rly( 1 );
- }else{
- return -1;
- }
- }
- int plc_get_safety_relay_shutdown_ctrl_rly()
- {
- int model = plc[1].model;
- if( model == DEVM_SIMATIC_S7 ){
- return simatic_s7_get_safety_relay_shutdown_ctrl_rly( 1 );
- }else{
- return -1;
- }
- }
- int plc_get_main_sw_trip_ctrl_rly()
- {
- int model = plc[1].model;
- if( model == DEVM_SIMATIC_S7 ){
- return simatic_s7_get_main_sw_trip_ctrl_rly( 1 );
- }else{
- return -1;
- }
- }
- int plc_get_safety_relay_reset_rly()
- {
- int model = plc[1].model;
- if( model == DEVM_SIMATIC_S7 ){
- return simatic_s7_get_safety_relay_reset_rly( 1 );
- }else{
- return -1;
- }
- }
- int plc_get_ems_pwrspl_reset_rly()
- {
- int model = plc[1].model;
- if( model == DEVM_SIMATIC_S7 ){
- return simatic_s7_get_ems_pwrspl_reset_rly( 1 );
- }else{
- return -1;
- }
- }
- int plc_get_fan_ctrl_rly1()
- {
- int model = plc[1].model;
- if( model == DEVM_SIMATIC_S7 ){
- return simatic_s7_get_fan_ctrl_rly1( 1 );
- }else{
- return -1;
- }
- }
- int plc_get_fan_ctrl_rly2()
- {
- int model = plc[1].model;
- if( model == DEVM_SIMATIC_S7 ){
- return simatic_s7_get_fan_ctrl_rly2( 1 );
- }else{
- return -1;
- }
- }
- int plc_get_door_stat(int door_idx)
- {
- int model = plc[1].model;
- if( model == DEVM_SIMATIC_S7 ){
- return simatic_s7_get_door_stat( 1, door_idx );
- }else{
- return -1;
- }
- }
- int plc_get_fire_stat1_alarm()
- {
- int model = plc[1].model;
- if( model == DEVM_SIMATIC_S7 ){
- return simatic_s7_get_fire_stat1_alarm( 1 );
- }else{
- return -1;
- }
- }
- int plc_get_fire_stat2_alarm()
- {
- int model = plc[1].model;
- if( model == DEVM_SIMATIC_S7 ){
- return simatic_s7_get_fire_stat2_alarm( 1 );
- }else{
- return -1;
- }
- }
- int plc_get_fire_alarm()
- {
- int model = plc[1].model;
- if( model == DEVM_SIMATIC_S7 ){
- return simatic_s7_get_fire_alarm( 1 );
- }else{
- return -1;
- }
- }
- int plc_get_fire_fault()
- {
- int model = plc[1].model;
- if( model == DEVM_SIMATIC_S7 ){
- return simatic_s7_get_fire_fault( 1 );
- }else{
- return -1;
- }
- }
- int plc_get_gas_alarm1()
- {
- int model = plc[1].model;
- if( model == DEVM_SIMATIC_S7 ){
- return simatic_s7_get_gas_alarm1( 1 );
- }else{
- return -1;
- }
- }
- int plc_get_gas_alarm2()
- {
- int model = plc[1].model;
- if( model == DEVM_SIMATIC_S7 ){
- return simatic_s7_get_gas_alarm2( 1 );
- }else{
- return -1;
- }
- }
- int plc_get_transf_temp()
- {
- int model = plc[1].model;
- if( model == DEVM_SIMATIC_S7 ){
- return simatic_s7_get_transf_temp( 1 );
- }else{
- return -1;
- }
- }
- int plc_get_transf_temp_120_alarm()
- {
- int model = plc[1].model;
- if( model == DEVM_SIMATIC_S7 ){
- return simatic_s7_get_transf_temp_120_alarm( 1 );
- }else{
- return -1;
- }
- }
- int plc_get_transf_temp_130_alarm()
- {
- int model = plc[1].model;
- if( model == DEVM_SIMATIC_S7 ){
- return simatic_s7_get_transf_temp_130_alarm( 1 );
- }else{
- return -1;
- }
- }
- int plc_get_comm_st()
- {
- int model = plc[1].model;
- if( model == DEVM_SIMATIC_S7 ){
- return simatic_s7_get_comm_st( 1 );
- }else{
- return -1;
- }
- }
- char* plc_get_info_str(int idx)
- {
- int model = plc[1].model;
- if( model == DEVM_SIMATIC_S7 ){
- return simatic_s7_get_info_str( 1 );
- }else{
- return NULL;
- }
- }
- char* plc_get_model_str( )
- {
- // int model = plc[1].model;
- // if( model == DEVM_SIMATIC_S7 ){
- // return simatic_s7_get_model_str( 1 );
- // }else{
- // return NULL;
- // }
- return plc[1].szmodel;
- }
- int plc_get_chan_idx( )
- {
- int model = plc[1].model;
- if( model == DEVM_SIMATIC_S7 ){
- return simatic_s7_get_chan_idx( 1 );
- }else{
- return -1;
- }
- }
- int plc_get_step( )
- {
- int model = plc[1].model;
- if( model == DEVM_SIMATIC_S7 ){
- return simatic_s7_get_step( 1 );
- }else{
- return -1;
- }
- }
- int plc_get_tick( )
- {
- int model = plc[1].model;
- if( model == DEVM_SIMATIC_S7 ){
- return simatic_s7_get_tick( 1 );
- }else{
- return -1;
- }
- }
- int plc_get_comm_adr()
- {
- int model = plc[1].model;
- if( model == DEVM_SIMATIC_S7 ){
- return simatic_s7_get_comm_adr( 1 );
- }else{
- return -1;
- }
- }
- char* plc_get_sm_state_str()
- {
- int model = plc[1].model;
- if( model == DEVM_SIMATIC_S7 ){
- return simatic_s7_get_state_str( 1 );
- }else{
- return NULL;
- }
- }
- int plc_get_hb_from_dev()
- {
- int model = plc[1].model;
- if( model == DEVM_SIMATIC_S7 ){
- return simatic_s7_get_hb_from_dev( 1 );
- }else{
- return -1;
- }
- }
- int plc_get_ems_reset_sig()
- {
- int model = plc[1].model;
- if( model == DEVM_SIMATIC_S7 ){
- return simatic_s7_get_ems_reset_sig( 1 );
- }else{
- return -1;
- }
- }
- int plc_get_ems_safety_relay_reset_sig()
- {
- int model = plc[1].model;
- if( model == DEVM_SIMATIC_S7 ){
- return simatic_s7_get_ems_safety_relay_reset_sig( 1 );
- }else{
- return -1;
- }
- }
- int plc_get_ems_pwrspl_reset_sig()
- {
- int model = plc[1].model;
- if( model == DEVM_SIMATIC_S7 ){
- return simatic_s7_get_ems_pwrspl_reset_sig( 1 );
- }else{
- return -1;
- }
- }
- int plc_get_ems_safety_relay_off_sig()
- {
- int model = plc[1].model;
- if( model == DEVM_SIMATIC_S7 ){
- return simatic_s7_get_ems_safety_relay_off_sig( 1 );
- }else{
- return -1;
- }
- }
- char* plc_get_comm_state_str()
- {
- int model = plc[1].model;
- if( model == DEVM_SIMATIC_S7 ){
- return simatic_s7_get_comm_state_str( 1 );
- }else{
- return NULL;
- }
- }
- int plc_get_tool_data(char* buf)
- {
- int model = plc[1].model;
- char temp_buf[2048];
- if(model == DEVM_SIMATIC_S7){
- sprintf(buf," "REVERSE" PLC "NONE" model:%s\n", plc[1].szmodel);
- simatic_s7_get_tool_data(1,temp_buf);
- strcat(buf,temp_buf);
- }else{
- return -1;
- }
- return 0;
- }
- int plc_get_tbmqtt_data(char* buf)
- {
- int model = plc[1].model;
- char temp_buf[2048];
- if(model == DEVM_SIMATIC_S7){
- simatic_s7_get_tbmqtt_data(1,buf);
- }else{
- return -1;
- }
- return 0;
- }
- int plc_get_cloud_data(int ctn_idx,char* buf)
- {
- int model = plc[1].model;
- char temp_buf[2048];
- if(model == DEVM_SIMATIC_S7){
- simatic_s7_get_cloud_data(ctn_idx,1,buf);
- }else{
- return -1;
- }
- return 0;
- }
- int plc_get_bkds_data(char* buf)
- {
- int model = plc[1].model;
- char temp_buf[2048];
- sprintf(buf,"\"plc\":{");
- if(model == DEVM_SIMATIC_S7){
- simatic_s7_get_bkds_data(1,temp_buf);
- strcat(buf,temp_buf);
- }else{
- return -1;
- }
- strcat(buf,"}");
- return 0;
- }
|